Mirar
Mitglied
Guten Abend zusammen!
Bei einer kleinen Übung, bei welcher ich ein Programm entwickeln will, welches aus 3 eingegeben Zahlen die größte Erkennt und ausgibt, bin ich auf folgendes Problem gestoßen:
Wenn ich folgenden Code ausführe und dabei der Variable num1 einen Buchstaben statt einer Zahl gebe, die Exception geworfen wird. Ab dann wird natürlich die Schleife wiederholt, doch statt erstmal meine Eingabe abzuwarten springt das Programm direkt wieder in den Catch-Block und landet somit in einer Endlos-Schleife...
Meine Frage ist also: Was muss ich machen damit im Falle einer falschen Eingabe auch wirklich auf meinen 2. Versuch gewartet wird und er nicht sofort in den Catch-Block geht...
Hier der Code:
Vielen Dank im Voraus
Bei einer kleinen Übung, bei welcher ich ein Programm entwickeln will, welches aus 3 eingegeben Zahlen die größte Erkennt und ausgibt, bin ich auf folgendes Problem gestoßen:
Wenn ich folgenden Code ausführe und dabei der Variable num1 einen Buchstaben statt einer Zahl gebe, die Exception geworfen wird. Ab dann wird natürlich die Schleife wiederholt, doch statt erstmal meine Eingabe abzuwarten springt das Programm direkt wieder in den Catch-Block und landet somit in einer Endlos-Schleife...
Meine Frage ist also: Was muss ich machen damit im Falle einer falschen Eingabe auch wirklich auf meinen 2. Versuch gewartet wird und er nicht sofort in den Catch-Block geht...
Hier der Code:
Java:
import java.util.Scanner;
public class BiggestNumber {
private static int num1, num2, num3;
static Scanner scanner = new Scanner(System.in);
private static boolean repeat;
public static void main(String[] args) {
System.out.println("Geben Sie 3 Zahlen ein! (Zahl mit Enter bestätigen)");
do {
try {
repeat = false;
System.out.print("Zahl1: ");
num1 = scanner.nextInt();
System.out.print("\nZahl2: ");
num2 = scanner.nextInt();
System.out.print("\nZahl3: ");
num3 = scanner.nextInt();
} catch (Exception e) {
System.out.println("Versuche es nochmal, jedoch nur mit ganzen Zahlen!");
repeat = true;
}
}while(repeat);
if (num1 >= num2) {
if (num1 >= num3) {
System.out.println(num1);
}
} else if (num2 >= num1) {
if (num2 >= num3) {
System.out.println(num2);
}
} else if (num3 >= num1) {
if (num3 >= num2) {
System.out.println(num3);
}
}
}
}
Vielen Dank im Voraus