如何为Java输入去重程序添加数值大于10小于100的校验规则
代码修改方案
你只需要在读取用户输入的环节增加范围校验逻辑即可,输入不符合10~100区间时,循环提示用户重新输入,直到拿到合法值再走后续的重复判断流程,完全不影响原有最小长度数组的要求,适配全部不重复的最坏情况。
核心修改点
- 读取输入后新增范围判断,输入不合法时不进入后续重复校验逻辑,要求用户重新输入
- 补充新增唯一值后立即输出当前全部唯一值的逻辑,符合需求要求
- 原有重复校验、数组存储、最终结果输出逻辑完全保留,不需要调整
修改后完整代码
import java.util.Scanner; import java.util.Arrays; public class IsDuplicate { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 数组长度为5,刚好适配5个数字全部不同的最坏情况,符合最小长度要求 int array[] = new int[5]; int size = 0; int x; for (int i = 0; i < 5; i++) { // 范围校验死循环:拿到合法输入才跳出 while (true) { System.out.print("请输入10到100之间的整数: "); x = input.nextInt(); if (x >= 10 && x <= 100) { break; } System.out.println("输入无效,请重新输入!"); } if(size == 0 || newNumber(array, size, x)) { System.out.println(x + "是首次输入"); array[size] = x; size++; // 每次输入新的唯一值后展示当前全部唯一值 System.out.println("当前已输入的唯一值列表:"); for (int j = 0; j < size; j++) { System.out.println("唯一值" +(j+1)+ ": " +array[j]); } } } System.out.println("最终输入的全部唯一值为:"); for (int i = 0; i<size; i++) { System.out.println("唯一值" +(i+1)+ ": " +array[i]); } } private static boolean newNumber(int y[], int size, int x) { for (int i = 0; i < size; i++) { if (y[i] == x) { return false; } } return true; } }
内容的提问来源于stack exchange,提问作者user17518971
相关产品推荐
相关产品推荐

