Java try catch for do while 循环不循环

标签 java do-while

我在尝试为 do while 循环执行 try catch 时遇到了一些问题:

try{
    do {
        System.out.println("Enter your option: ");
        choice = sc.nextInt();
        switch (choice) {
            case 1:
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;

        }
    } while (choice != 6);
    }catch(InputMismatchException e){
        System.out.println("Please enter option between 1-6.");
    }

我正在尝试为 do while 循环做的是当用户输入除 6 以外的任何内容时终止,它将继续提示用户输入。对于每种情况,它将转到特定的方法。

然后,我尝试 try catch InputMismatchException,因为我的扫描器正在从用户输入中获取整数。但是,在我输入字母表而不是整数后,程序就自行终止了。我正在尝试像当用户输入字母表时那样,它会继续提示用户正确输入。

有什么想法吗?提前致谢。

我在想我是否应该再做一次来包装整个 try catch?

最佳答案

喜欢:

try {
   choice = sc.nextInt();
} catch(InputMismatchException e){
        System.out.println("Please enter option between 1-6.");
        sc.next();
        continue;
    }

如果用户输入无效输入,它将转到 catch block 并继续循环。删除外部 try catch block 。它不是必需的

关于Java try catch for do while 循环不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36135424/

相关文章:

Java 正则表达式 字母后跟数字

JavaScript async/await 和 do/while 循环

c++ - 我的 do-while 循环没有结束

java - Switch 语句和 While 循环

c - 在 C 中执行 While 循环 (CS50)

Java坚持改变这两个变量

java - 生成随机数组 int[] 时性能更好

java - XMLSocketReceiver 和 SocketReceiver 如何工作?

Java,在 do-while 循环结束时不注册用户输入

Java while循环打印平方数不能使用int?