int choice = 0;
while ((choice != 1) || (choice !=2)){
System.out.println("1. Option 1");
System.out.println("2. Option 2");
try{
choice = scanner.nextInt();
}
catch(InputMismatchException e){
System.out.println(e);
}
if (choice == 1){
System.out.println("Option 1");
break;
}
if (choice == 2){
System.out.println("Option 2");
break;
}
System.out.println("Please enter a valid choice.");
}
Ich versuche, den Fall zu behandeln, in dem ein Nicht-Int eingegeben wird. Warum dreht sich das in eine Endlosschleife? Es hat gut funktioniert, bevor ich versucht habe, den try catch-Block hinzuzufügen.Java-Fehlerbehandlung verursacht Endlosschleife
Aber dann das Programm beendet ist, ich es in einer Schleife zurück wollen, so dass Sie in einen anderen Wert eingeben. – unskilledidiot
Sie müssen das Newline-Token konsumieren. Siehe http://stackoverflow.com/questions/13102045/skipping-nextline-after-using-next-nextint-or-other-nextfoo-methods. –