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

Java如何实现带条件的无效数字提示及成绩输入重输逻辑?

问题根因
  • 原有代码的外层for循环控制变量i每次循环都会自动自增,校验失败后的continue仅能跳过当前循环剩余逻辑,无法阻止i自增,因此会直接进入下一名学生的输入流程
  • 求和方法theSumOfGrade存在变量名错误:定义的累加变量是sumGrade,但实际累加时用的是未定义的sumOfGrade,运行时会直接报错
修复后代码
// 修复求和方法的变量名错误,删除无用入参grade
public static int theSumOfGrade(int[] newArray) {
    int sumGrade = 0;
    for(int i = 0; i < newArray.length; i++) {
        sumGrade += newArray[i];
    }
    return sumGrade;
}

public static int[] getNumberOfStudentsArray(Scanner input) {
    System.out.printf("Enter number of students: ");
    int numberOfStudents= input.nextInt();

    int studentGrades[] = new int[numberOfStudents];

    for (int i = 0; i < numberOfStudents; i++) {
        boolean validGrade = false;
        // 给单个学生的输入加循环,校验不通过就一直重输
        while (!validGrade) {
            System.out.println("Enter the grade for student " + (i+1) + ":" );
            int grade = input.nextInt();
            if (grade < 0 || grade > 100) {
                System.out.println("Invalid grade, try again...");
            } else {
                studentGrades[i] = grade;
                validGrade = true;
            }
        }
    }
    return studentGrades;
}
关键修改说明
  • 给每个学生的输入逻辑新增了while循环,只有输入的成绩合法才会退出当前循环,进入下一名学生的输入流程
  • 修复了求和方法的变量名错误,同时删除了原方法中没用的grade入参
  • 去掉了原代码中无效的continue逻辑,通过合法标记控制输入流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:45:03