2013-09-24, 12:49
  #1
Medlem
Hej,

jag behöver hjälp med hur man löser ett enkelt problem med felkoll vid division med 0 i java.

Eftersom man inte får dividera med 0 så tänkte jag att man kanske kan lösa det på följande sätt?
Kod:
{
		line:43	Scanner inmatning = new java.util.Scanner(System.in);
		line:44	System.out.println("Ange täljare: ");
		line:45	int Täljare = inmatning.nextInt();
		line:46	System.out.println("Ange nämnare: ");
		line:47	int Nämnare = inmatning.nextInt();
		line:48	if (Nämnare == 0)
		line:49	{
				System.out.println("Du har angett nämnaren till 0, division  med 0 är ej möjligt. FÖrsök igen ");
				continue line 46;
			}
				
			String Bråk;
			Bråk = Bråktal(Täljare, Nämnare);
			System.out.println("Resultat av bråktalet: " + Bråk);

		}

Jag la alltså ett if-villkor att om "Nämnare==0" så fråga efter ett nytt värde till Nämare genom att börja om på rad 46.... (Det är så jag tänkt)

Eller har ni ett bättre förslag?
Citera
2013-09-24, 13:31
  #2
Medlem
*sn0wflake*s avatar
Använd en loop:
Kod:
int Nämnare;
System.out.println("Ange nämnare: ");
while ((Nämnare = inmatning.nextInt()) == 0) {
    System.out.println("Du har angett nämnaren till 0, division  med 0 är ej möjligt. Försök igen: ");
}
__________________
Senast redigerad av *sn0wflake* 2013-09-24 kl. 13:35.
Citera
2013-09-24, 13:32
  #3
Medlem
Mysfarbrorn-s avatar
Lär dig att använda exceptions, det är lite mer "snyggare" kod om man säger så.

I ditt fall blir det till att kasta ett IllegalArgumentException:

Kod:
if (Nämnare == 0) {
    throw new 
IllegalArgumentException("Argument 'divisor' is 0");


En annan sak du inte bör vänja dig vid är att skriva koden på svenska.

EDIT: Missuppfattade frågan, ursäkta. Använd en loop som ovanstående föreslog.
Citera
2013-09-24, 13:57
  #4
Medlem
ok tack för tipsen!
loopen funkade bra
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in