• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dzielenie przez zero, jak zakończyć funkcję C#

Object Storage Arubacloud
0 głosów
2,075 wizyt
pytanie zadane 8 kwietnia 2016 w C# przez Placidus Użytkownik (580 p.)

Witam napisałem taką funkcję, jednak zamiast wyskoczenia tekstu dzieli przez zero, jak zrobić żeby wyskoczyło to co napisałem i program kończył się dopiero po nacisnięciu np entera.

 

 static int Div(int a, int b)
        { 
            if(b==0)

                Console.WriteLine("Nie można dzielić przez zero!!!");
           

      
                return a / b;
        }

 

4 odpowiedzi

+1 głos
odpowiedź 8 kwietnia 2016 przez Dorion300 Szeryf (90,250 p.)
edycja 31 maja 2016 przez Dorion300
Co jak co ale twój kod nie jest poprawny, wystąpi wyjątek przy return.

Lepszym pomysłem jest umieścić fragmenty kodu odpowiedzialne za obsługę wyjątków, ale jesteś dość początkującą osobą więc spróbujmy to trochę inaczej rozwiązać.
O ile się nie mylę Div jest metodą która dzieli liczby.

Umieść po prostu Console.ReadKey() po wywołaniu metody Div() jak i umieść w ifie np. return 0.

http://wklej.org/id/2242622/
0 głosów
odpowiedź 8 kwietnia 2016 przez Vodoo Dyskutant (9,270 p.)
0 głosów
odpowiedź 31 maja 2016 przez Surykat Stary wyjadacz (14,780 p.)
Po pierwsze- lepiej, żeby funkcja zwracała tym double, niż int, bo nie zawsze wynik dzielenia będzie liczbą całkowitą.

Po drugie- przeanalizuj swój swój kod: w pierwszej linii twojej funkcji, sprawdzasz czy b jest równe zero- jeśli tak to wyświetlasz komunikat. Następnie zwracasz a/b, czyli i tak dzielisz przez zero. Powinieneś dorzucić elsa odpowiednio, ktoś na dole już to zrobił. Tyle, że tutaj i tak musiałbyś zwrócić roboczo jakiś wynik (nie pamiętam, czy można zwrócić nulla w funkcji mającej zwrócić double), co jest nieeleganckie. Dlatego najlepiej, gdybyś użył bloku try...catch, ale może na początku daj sobie z tym siana (chociaż nie jest to trudne).
0 głosów
odpowiedź 31 maja 2016 przez RadomskiCoder Gaduła (3,980 p.)

Zrób tak

static int Div(int a, int b)
       { 
           if(b==0)
            {
               Console.WriteLine("Nie można dzielić przez zero!!!");
               return 0;
            }
           else
            {
               return a / b;
             }
       }
static int Div(int a, int b)
       { 
           try
            {
              return a / b;              
            }
           catch(DivideByZeroException ex)
            {
                Console.WriteLine("Nie można dzielić przez zero!!!");

                //bardziej szczegółowy wyjątek
                Console.WriteLine (ex.Message);

                return 0;
             }
       }

 

ewentualnie z try... catch :)

Podobne pytania

+1 głos
1 odpowiedź 893 wizyt
pytanie zadane 12 stycznia 2022 w C# przez Czang Kai Shrek Obywatel (1,990 p.)
0 głosów
0 odpowiedzi 296 wizyt
0 głosów
1 odpowiedź 268 wizyt
pytanie zadane 28 grudnia 2022 w C# przez sisOOO Obywatel (1,370 p.)

92,573 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...