Benutzereingabe check nur int
Ich versuche, dass meine Benutzereingabe mein Programm nicht zum Absturz bringt, indem ich einschränke, was der Benutzer eingeben kann, wie zum Beispiel:
nur ein int seinzwischen 1-30 seinDer von mir geschriebene Code funktioniert nur bis zu einem bestimmten Punkt. Wenn Sie etwas eingeben, das kein int ist, wird es überprüft und Sie werden aufgefordert, es erneut einzugeben. Andererseits, wenn Sie etwas anderes als ein Int eingeben. Ich habe eine andere while-Schleife, wenn sie ein int eingibt und sich außerhalb der 1-30-Zone befindet, dann wird der Benutzer erneut zur Eingabe aufgefordert. Wenn der Benutzer danach jedoch ein anderes "irgendetwas anderes als ein Int" eingibt, stürzt das Programm ab. Ich habe versucht, beide zu kombinierensc.hasnextint()
und die Prüfung für die Eingabe zwischen 1-30 Bedingung, aber wenn ich diesc.nextint()
Vor demsc.hasnextint()
und der Benutzer etwas anderes als ein int eingibt, stürzt das Programm ab. Wenn ich es nach der Bedingungsschleife setze, wird die Benutzereingabe nicht deklariert.
int choose;
System.out.print("type an integer: ");
Scanner sc=new Scanner(System.in);
while (!sc.hasNextInt() ) {
System.out.println("only integers!: ");
sc.next(); // discard
}
choose=sc.nextInt();
while (choose<=0 || choose>30)
{
System.out.print("no, 1-30: ");
choose=sc.nextInt();
}
sc.close();