Hallo,
ich habe eine kurze Methode geschrieben, die dividieren soll.
Bei der Eingabe eines Zeichens, das keine Zahl ist soll eine Fehlermeldung kommen (per Exception). Dies soll auch über eine andere Exception passieren, falls durch 0 dividiert wird.
Beim Ausführen habe ich als erstes 8 und dann a eingetippt. Dabei entsteht eine Endlosschleife und die zugehörige Meldung bei InputMismatchException wird in einer Endlosschleife ausgegeben. Woran liegt das?
Ich möchte gerne, dass nach einer falschen Eingabe lediglich der Benutzer erneut aufgefordert wird eine Zahl einzugeben. Bei dem Versuch durch 0 zu dividieren funktioniert das auch. Nur bei InputMismatchException klappt es nicht.
Ich würde mich sehr freuen, wenn mit jemand behilflich sein kann, da ich den Fehler alleine nicht finden konnte.
ich habe eine kurze Methode geschrieben, die dividieren soll.
Bei der Eingabe eines Zeichens, das keine Zahl ist soll eine Fehlermeldung kommen (per Exception). Dies soll auch über eine andere Exception passieren, falls durch 0 dividiert wird.
Beim Ausführen habe ich als erstes 8 und dann a eingetippt. Dabei entsteht eine Endlosschleife und die zugehörige Meldung bei InputMismatchException wird in einer Endlosschleife ausgegeben. Woran liegt das?
Ich möchte gerne, dass nach einer falschen Eingabe lediglich der Benutzer erneut aufgefordert wird eine Zahl einzugeben. Bei dem Versuch durch 0 zu dividieren funktioniert das auch. Nur bei InputMismatchException klappt es nicht.
Ich würde mich sehr freuen, wenn mit jemand behilflich sein kann, da ich den Fehler alleine nicht finden konnte.
Code:
import java.util.*;
public class main {
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
int x=1;
do {
//try this
try {
System.out.println("Enter your first number");
int n1 = input.nextInt();
System.out.println("Enter your second number");
int n2 = input.nextInt();
double diff = n1/n2;
System.out.println(diff);
x=2; //successful diff
}
//if you have an error do this
catch (InputMismatchException e) {
System.out.println("Only idiots try to divide by other things than numbers");
}
catch(Exception e){
System.out.println("You can't do that.");
}
}
while (x==1);
}
}