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
相关产品推荐
相关产品推荐

