我想让用户输入一个仅在0-100之间的成绩,但我还希望他们在被要求输入数字等级时输入一个字母/单词时会抛出一条错误消息。
我试图让它循环并不断要求用户输入成绩,但是当我运行程序时,异常没有被捕获并且运行时错误仍然发生。
任何人都可以解释为什么会这样,并指导我如何解决它,这是我的代码:
System.out.println("Enter Grade #3 for: " + sArray[x].studentName);
boolean loop = false;
while (!loop) {
try {
int temp3 = kbReader.nextInt();
while (temp3 < 0 || temp3 > 100) {
System.out.println("Error: Please enter a valid grade between 0-100:");
temp3 = kbReader.nextInt();
}
if (temp3 >= 0 && temp3 <= 100) {
sArray[x].grade3 = temp3;
loop = false;
}
} catch (Exception e) {
System.out.println("Error please enter an integer!");
kbReader.reset();
kbReader.nextInt();
}
}