Я написал программу, которая может поймать ошибку ввода пользователя.Я продолжаю получать бесконечное выполнение while loop
Когда я пытаюсь сделать свою программу «сделай сверху» (с циклом do while), она столкнулась с ошибкой. Программа (вместо перезапуска с помощью пользовательского ввода через сканер) снова и снова будет печатать строки System.out.println
из блока catch catch.
Ниже мой код, и я очень надеюсь, что кто-то может мне помочь.
int x = 0;
int y = 0;
int Temp = 0;
int Rest = 0 ;
int Works = 1;
Scanner s = new Scanner(System.in);
do{
try{
System.out.println("Bitte geben sie zwei Nummern ein für den ggT.");
System.out.print("Die erste Nummer: ");
x = s.nextInt();
System.out.print("Die zweite Nummer: ");
y = s.nextInt();
if (x < y){
Temp = x;
x = y;
y = Temp;
}System.out.println("Berechnung des ggT von " +x +" und " +y +".");
do{
System.out.println("Rechne " +x +" mod " +y +": ");
Rest = x % y;
if (Rest != 0){
x = y;
y = Rest;
}
}while (Rest !=0);
System.out.println("Der größte gemeinsame Teiler lautet: " + y);
Works=2;
}
catch(Exception e){
System.out.println("Sie dürfen nicht durch Null (0) teilen.");
System.out.println("Sie dürfen keine Dezimalzahlen benutzen.");
System.out.println("Sie dürfen keine Zeichen benutzen.");
System.out.println("Versuchen wir es noch einmal :)");
}
}while(Works==1);
}
Это напечатает
Bitte geben sie zwei Nummern ein für den ggT.
Die erste Nummer:
Sie dürfen nicht durch Null (0) teilen.
Sie dürfen keine Dezimalzahlen benutzen.
Sie dürfen keine Zeichen benutzen.
Versuchen wir es noch einmal :)
снова и снова. Вместо ожидания ввода пользователя.
Надеюсь, что немецкий, а также мой код не отложить.
Где находится javascript? –
Какие ошибки ввода вы используете? –
Возможный дубликат [Сканер пропускает nextLine() после использования следующих(), nextInt() или других методов nextFoo()] (http://stackoverflow.com/questions/13102045/scanner-is-skipping-nextline-after- using-next-nextint-or-other-nextfoo) –