Warum gibt mein Code mir einen Fehler? Wenn der Benutzer eine falsche Nummer eingegeben hat, darf der Code nicht eine neue gültige Nummer eingeben? Scheint, als ob es mich nicht Lieblings zu einem neuen Wert ändern lässt. Wie kann ich dieses Problem umgehen?Scanner versuchen Catch-Anweisung Ergebnisse in java.util.InputMismatchException
package RobB;
import java.util.Scanner;
public class FavoriteNum {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[] num = new int[10];
int favorite = 0;
System.out.print("Enter your favorite number: ");
try {
favorite = scan.nextInt();
}
catch (Exception e) {
System.out.println("Enter an integer!");
System.out.print("Enter your favorite number: ");
favorite = scan.nextInt();
}
for (int i = 0; i < 10; i++) {
System.out.print("Enter a random number (" + Math.abs(((i + 1) - 10)) + " to go): ");
num[i] = scan.nextInt();
}
}
}
Console Ausgabe:
Enter your favorite number: 11.1
Enter an integer!
Exception in thread "main" Enter your favorite number: java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at RobB.FavoriteNum.main(FavoriteNum.java:21)
_Scan_ in Fang ??? – vinS
Dies ist die Spezifikation - Sie sollten den zusätzlichen Scan, den Sie hinzugefügt haben, hinzufügen und fügen Sie einige While-Schleife, bis Sie eine gültige Eingabe haben – ronhash