java - 验证 WHILE 循环内的输入范围

标签 java

有人可以向我解释一下如何将成绩条件设置为只能为 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/

相关文章:

java - 读取文件时出错

java - 如何使用 mvn 命令从终端执行@SpringBootTest?

java - 循环测试结果为空,程序崩溃

java - AS3/Java - 通过知道其他两点和线段长度找到三角形的点

java - 将 HTML 登陆页面集成到 Hybris 或将 URL 重定向到另一台服务器

java - 使用spring esTemplate删除doc中的字段

java - 无法使用 hibernate 更新 MySQL 中的行

java - 如何从 Java 应用程序运行进程?

java - ConcurrentModificationException 从迭代器中删除元素

java - Oracle sql Developer 保存希伯来语数据 - 转换为乱码