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

Java中给定取值范围时如何校验输入数组的元素合法性

核心问题说明
  • 数组初始化错误:使用IntStream.rangeClosed(1, 99).toArray()生成的数组固定长度为99,既会导致输入size大于99时触发数组越界,也会在size小于99时,计算平均值把未手动输入的默认值纳入统计,结果不符合预期
  • 缺少输入校验逻辑,未对输入的元素值做范围判断
  • 平均值计算使用整数除法,会丢失小数精度
修正方案

在读取每个数组元素的位置增加循环校验:输入值不符合0 < 值 < 100的要求时,输出指定提示并要求重新输入,直到拿到合法值再写入数组。同时修正数组初始化和平均值计算逻辑。

完整可运行代码
package arrays;
import java.util.Scanner;

public class ArrayAssignment {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);

        System.out.println("输入数组大小: ");
        int size = s.nextInt();
        // 修正数组初始化:按输入的size创建对应长度的空数组
        int[] array = new int[size];

        System.out.println("输入数组元素: ");
        for (int i = 0; i < size; i++) {
            int value;
            // 循环校验输入合法性
            while (true) {
                value = s.nextInt();
                if (value > 0 && value < 100) {
                    break;
                }
                System.out.println("请输入仅>0且<100的值");
            }
            array[i] = value;
        }

        int sum = 0;
        for (int j : array) {
            sum += j;
        }
        // 修正平均值计算:先转double再做除法,保留小数精度
        double average = (double) sum / size;
        System.out.println("数组平均值: " + average);
        s.close();
    }
}
运行效果示例
输入数组大小: 
3
输入数组元素: 
101
请输入仅>0且<100的值
-5
请输入仅>0且<100的值
20
30
40
数组平均值: 30.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:15:10