WHILE循环条件不验证输入

gym*_*ode 1 java netbeans exception while-loop conditional-statements

我有一个WHILE循环,检查特定学生的标记.但是,如果值无效(输入小于0且大于100),则不会循环:

int marks= -1;

System.out.print("Student Marks (/100): ");
                while (((marks< 0) || (marks> 100))) {
                    try {
                        marks = Integer.parseInt(sc.nextLine());
                        break;
                    } catch (NumberFormatException nfe) { 
                        System.err.println("Error: Invalid Mark(s)");
                        System.out.print("Student Marks (/100): ");
                    }
                }
Run Code Online (Sandbox Code Playgroud)

如果输入了数字以外的字符,它会捕获异常.

但如果值小于0或大于100,它不会再次循环.

我试过对它做了很多改动,但没有结果.

任何帮助表示赞赏!

Era*_*ran 6

您应该删除该break语句,因为无论marks输入的值是什么,它都会使您脱离循环.