有人可以向我解释一下如何将成绩条件设置为只能为 0 或更高或 100 或更低。我已经尝试了 while 循环内的语句,但平均值不正确。我已将其放在循环之外,但这似乎也不起作用。
while (!gradeInput.equals(SENTINEL)) {
try {
int grade = Integer.parseInt(gradeInput);
sum += grade;
count++;
}
catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null,"Error! only numeric values.");
}
gradeInput = JOptionPane.showInputDialog("Enter exam grade (or -1 to end the program):");
}
最佳答案
Sharma 的评论可能更清晰,但这也应该有效:
gradeInput 计算应该在循环的开始处 - 而不是结束处。
然后将验证放入循环中,如下所示(仅在输入有效时进行求和和计数)
if(grade>0 && grade <100) {
sum += grade;
count++;
}
然后在循环外用 sum/count 计算平均值
关于java - 验证 WHILE 循环内的输入范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30782903/