我有一个 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/