java - WHILE 循环条件不验证输入

标签 java exception netbeans 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): ");
                    }
                }

如果输入数字以外的字符,它确实会捕获异常。

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

我已经尝试对其进行许多更改但没有结果。

感谢您提供的任何帮助!

最佳答案

您应该删除 break 语句,因为无论 marks 的输入值是多少,它都会使您跳出循环。

关于java - WHILE 循环条件不验证输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29096628/

相关文章:

java sql异常没有找到合适的驱动程序

c# - 嵌套的 Try 和 Catch block

php - 有没有一种静态方法可以在 php 中抛出异常

java - 解耦与输入数据相关的对象构造

java - 根据构建阶段强制执行不同的设置

java - Android:删除标题栏错误

java - Tess4J,找不到 tessdata

java - 无法加载 BufferedImage

Netbeans 8.0 的 Java Platform Manager 中缺少 JavaFX 选项卡

java - 我的 'if-else' 语句遇到问题,我不知道如何将文本字段转换为整数(或其他内容)