[英]InputMismatchException in Java replacing while loop
In my task I need to put InputMismatchException when user tries to enter some values.在我的任务中,当用户尝试输入一些值时,我需要放置 InputMismatchException。 User get some numbers from 1 to some number (simptoms.lenght).
用户获取从 1 到某个数字的一些数字 (simptoms.lenght)。
int number=0;
do{
System.out.printf("Choose %d simptoms: \n", number+1);
for(int j=0; j< simptomi.length;j++){
System.out.printf("%d. %s %s\n", j + 1, simptoms[j].getName(),
simptoms[j].getValue());
}
System.out.print("Choose: ");
while(!scanner.hasNextInt()){
System.out.println("Please enter number!");
scanner.next();
}
number=scanner.nextInt();
scanner.nextLine();
if(number<0 || number> simptoms.length){
System.out.println("Error, choose again");
}
}while(number<0 || number> simptoms.length);
After this code I tried to do this: instead of while(!scanner.hasNextInt()) I tried with try and I get this message:在这段代码之后,我尝试这样做:而不是 while(!scanner.hasNextInt()) 我尝试尝试并收到此消息:
Declaration, final or effectively final variable expected.声明、final 或有效的 final 变量预期。
Is this the right way of replacing while loop or I should try to add something else.这是替换 while 循环的正确方法还是我应该尝试添加其他内容。 I'm thinking about boolean = false and somehow try with that but I don't understand how to implement it properly.
我正在考虑 boolean = false 并以某种方式尝试使用它,但我不明白如何正确实现它。
I tried this:我试过这个:
try{
number=scanner.nextInt();
scanner.nextLine();
}
catch (InputMismatchException ex){
System.out.println("Please, enter number!");
}
Try it out!试试看! hope it helps!
希望能帮助到你!
try {
do {
number = scanner.nextInt();
if (!Character.isAlphabetic(number)) {
if (number > simptoms.length) {
System.out.println("Error, choose again");
System.out.println("Please enter number!");
}
}
} while (number != -1);
} catch (InputMismatchException e) {
System.out.println("Enter number");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.