有人可以告诉我如何防止这种情况:
"Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at JeffSky.main(JeffSky.java:25)"
当用户输入一个整数的字母时。
基本上,我试图找出即使输入了错误的数据类型也能保持程序运行的方法。就像您可以执行if语句来通知用户,如果用户输入的int超出给定范围(例如1-10),则不允许这样做。
for(int x = 1; x <= 3; x ++){
int guess;
System.out.print("Your chosen trap is: ");
do{
guess=sean.nextInt();
if(guess>=1 && guess<=6){
//do nothing if is a valid number i.e a trap between 1 and 6.
}
else {
System.out.print("Has to be between 1-6. Try again: ");
}
}
while(guess<1 || guess>6);
Run Code Online (Sandbox Code Playgroud)
干杯
nextInt的InputMismatchException表示输入不是int。你可以抓住它。
这将循环直到输入为1到6之间的数字为止:
do {
try {
guess = sean.nextInt();
if (guess >= 1 && guess <= 6) break;
} catch (InputMismatchException e) {
} finally {
sean.nextLine();
}
System.out.print("Input must be a number between 1 and 6: ");
} while (true);
Run Code Online (Sandbox Code Playgroud)
旁注:调用nextInt还将孤立一个新的行字符,因此nextLine前进。
| 归档时间: |
|
| 查看次数: |
6889 次 |
| 最近记录: |