Hallo ich habe folgendes Problem:
Ich möchte eine beliebige Zahl vom Benutzer eingeben (mit Hilfe eines Scanners) und durch eine Try-Catch-Anweisung kontrollieren lassen, ob die Eingabe nicht evtl. Buchstaben oder Zeichen anstatt einer Zahl war. Mit folgendem Quelltext funktioniert das wunderbar:
Wenn ich jedoch möchte, dass der Benutzer solange die Eingabe tätigen kann, bis er eine Zahl eingegeben hat schreibe ich folgendes:
Das Resultat artet leider in die Endlosschleife
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
[...]
aus anstatt in die erneute Eingabemöglichkeit.
Was hab ich falsch gemacht? Ich komm einfach nich auf den Fehler...
Thx & Gruß
DaSaeschOnAir
Ich möchte eine beliebige Zahl vom Benutzer eingeben (mit Hilfe eines Scanners) und durch eine Try-Catch-Anweisung kontrollieren lassen, ob die Eingabe nicht evtl. Buchstaben oder Zeichen anstatt einer Zahl war. Mit folgendem Quelltext funktioniert das wunderbar:
Code:
import java.util.Scanner;
import java.util.InputMismatchException;
public class TryCatch
{
public static void main(String[] args)
{
Scanner meinScanner = new Scanner(System.in);
System.out.println("Bitte eine Zahl eingeben:");
try
{
int x = meinScanner.nextInt();
System.out.println("Ihre Zahl lautet: "+x);
}
catch(InputMismatchException e)
{
System.out.println("Das ist keine Zahl gewesen!");
}
}
}
Wenn ich jedoch möchte, dass der Benutzer solange die Eingabe tätigen kann, bis er eine Zahl eingegeben hat schreibe ich folgendes:
Code:
import java.util.Scanner;
import java.util.InputMismatchException;
public class TryCatch
{
public static void main(String[] args)
{
Scanner meinScanner = new Scanner(System.in);
System.out.println("Bitte eine Zahl eingeben:");
boolean control = false;
while(control==false)
{
try
{
int x = meinScanner.nextInt();
System.out.println("Ihre Zahl lautet: "+x);
control = true;
}
catch(InputMismatchException e)
{
System.out.println("Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:");
}
}
}
}
Das Resultat artet leider in die Endlosschleife
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
Das ist keine Zahl gewesen! Wiederholen Sie die Eingabe:
[...]
aus anstatt in die erneute Eingabemöglichkeit.
Was hab ich falsch gemacht? Ich komm einfach nich auf den Fehler...
Thx & Gruß
DaSaeschOnAir