You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何实现考试分数输入非法时自动提示重新输入的功能

实现方案说明
  • 不需要替换你现有外层的for循环,原有for循环用来控制总共录入3个分数的逻辑完全可以保留
  • 不需要把外层for改成do-while,只需要在for循环内部嵌入一个小型的do-while循环做输入校验即可:单独的if语句只能做单次判断,无法实现重复输入的效果,必须配合循环实现重试逻辑
完整可运行代码
import java.util.Scanner;

public class GradeInputTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int grade[] = new int[3];
        // 保留原有外层for循环,控制录入3个分数
        for (int i = 0; i < grade.length; i++) {
            int tempScore;
            // 内层循环做非法输入重试
            do {
                System.out.println("Enter your test score:");
                tempScore = scanner.nextInt();
                // 输入非法时给出提示
                if (tempScore < 0 || tempScore > 100) {
                    System.out.println("输入的分数不合法,请输入0-100之间的数值");
                }
            } while (tempScore < 0 || tempScore > 100);
            // 拿到合法分数后再存入数组
            grade[i] = tempScore;
        }
        // 后续可自行添加分数统计、输出等逻辑
        scanner.close();
    }
}
逻辑说明
  • 内层do-while循环会优先执行一次输入逻辑,拿到用户输入后判断是否在合法区间
  • 只要输入不在0-100区间,就会重复执行输入、提示的流程,直到拿到合法分数才会退出内层循环
  • 外层for循环执行满3次后,数组中就会存入3个全部合法的分数

内容的提问来源于stack exchange,提问作者whowhatwhenwhere

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:00:01