简体   繁体   English

Java 中的 InputMismatchException 替换 while 循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM