Java: Scanner-Zahleneingabe auf Grenzen prüfen
English
Deutsch
In vielen Fällen, wenn man eine interaktive Kommandozeilen-Schnittstelle erstellen möchte, muss man prüfen, ob eine vom Benutzer eingegebene Zahl gültig ist – und wenn nicht, soll der Benutzer sie erneut eingeben.
Hier ist eine einfache statische Methode, um zu prüfen, ob eine vom Benutzer eingegebene Zahl innerhalb einer vorgegebenen Grenze liegt:
guardedInput.java
/**
* Lässt den Benutzer einen ganzzahligen Wert eingeben, bis dieser die
* vorgegebenen Bedingungen erfüllt
*
* @param msg Die Eingabeaufforderung für den Benutzer.
* @param lower Die untere Grenze, inklusiv
* @param upper Die obere Grenze, inklusiv
*/
private static int guardedInput(String msg, int lower, int upper) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print(msg);
int val = -1;
try {
val = scanner.nextInt();
} catch (InputMismatchException ex) {
System.out.println("Ungültiger Wert: Bitte eine Zahl eingeben!");
}
if (val < lower) {
System.out.println("Ungültiger Wert: Muss größer sein als " + (lower - 1));
} else if (val > upper) {
System.out.println("Ungültiger Wert: Muss kleiner sein als " + (upper + 1));
} else {
return val;
}
}
}Check out similar posts by category:
Java
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow