Java - Eingabe in while-Schleife zurücksetzen?
Ich habe in einem Programm als zwei Auswahlmöglichkeiten 1 und 2 und möchte, dass mir eine Falschmeldung angezeigt wird wenn ich eine Zahl eingebe, die nicht 1 oder 2 ist. Das habe ich über while-Schleife gemacht, aber wie verhindere ich, dass diese unendlich ist, sondern setze die Eingabe zurück? Sodass immer wieder neu gefragt wird?
Mein Quellcode:
int a = 1;
int b = 2;
String eingabe = sc.next();
a = Integer.parseInt(eingabe);
b = Integer.parseInt(eingabe);
while(a != 1 || b != 2)
{
System.out.println("Falsche Eingabe");
}
Was muss jetzt noch in die while-Schleife rein, damit sie nicht unendlich wird?
4 Antworten
Das ist reiner missbrauch einer while Schleife ;)
Und du brauchst nur eine Variable nicht 2.
Btw das ist Java nicht C++, prüfe also bei parseInt auf eine Exception falls eingabe nicht konvertiert werden kann.
while(1) { string eingabe = sc.next(); a = Integer.parseInt(eingabe); if(a == 1 || a == 2) break; else System.out.println("Falsche Eingabe"); } restlicher code.
Das Programm läuft so lange in der while schleife wie du eine Zahl ungleich 1 oder 2 eingibst.
Natürlich kannst du die If Anweisung auch durch ein switch ersetzen. Dann wird aber das Aussteigen aus der schleife ohne goto nur mit einer Hilfsvariable möglich.
Du musst natürlich dem Anwender auch die Chance geben einen anderen Wert einzugeben. Bei dir wird der Wert nur einmal eingelesen und in der Schleife erfolgt nur noch eine Ausgabe.
OT:
Das ist offensichtlich JAVA und in Deinen Themen steht auch nur Java. Warum schreibst Du dann C++ vor die Frage?
du baust die while schleife in eine fußgesteuerte do while schleife um und nimmst die Eingabe mit in die schleife fertig