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

Java数组使用for循环执行却无输出,求技术指导

嘿,我来帮你揪出这段代码没输出的问题,顺便给你几个实用小建议——作为编程新手,这类循环条件的坑确实很容易踩:

核心问题:循环条件写反了,代码块根本没执行!

你看这两个for循环的条件:i == list.length。咱初始时i是0,而list.length是你输入的长度(比如你输入3,那就是3),0和3肯定不相等啊,所以循环体里的代码一次都没跑起来,自然就没输出了!

正确的遍历数组的条件应该是i < list.length,这样i从0开始,一直跑到length-1(数组的索引就是从0到length-1的,对吧?),才能把数组的每个元素都处理到。

还有个小bug:随机数生成逻辑不对

你写的(int)(Math.random()+ 1) * 100会先把Math.random()+1转成int——Math.random()是0到1之间的浮点数,加1后是1到2,转int后只会得到1,再乘100就永远是100,这哪是随机数啊😂

如果想生成1到100之间的随机整数,应该改成这样:

list[i] = (int)(Math.random() * 100) + 1;

先让Math.random()乘100,得到0到99.999...的浮点数,转int后是0到99,再加1就变成1到100啦。

修正后的完整代码

我把这些问题都改好了,你可以直接运行试试:

import java.util.Scanner;

public class ArrayDoubleValues {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        // 提示输入数组长度
        System.out.println("Length: ");
        int length = scan.nextInt();
        int[] list = new int[length];
        
        // 填充数组,这里我保留了你原来打印length的逻辑,加了空格让输出更清晰
        for (int i = 0; i < list.length; i++){
            list[i] = (int)(Math.random() * 100) + 1;
            System.out.print(list.length + " ");
        }
        System.out.println(); // 换行分隔
        
        // 遍历打印数组的每个元素
        for(int i = 0; i < list.length; i++){
            System.out.println(list[i]);
        }
        
        scan.close(); // 别忘了关闭Scanner,养成良好的资源管理习惯
    }
}
新手小Tips
  1. 写代码一定要注意格式化(换行、缩进),你原来的代码挤成一团,很容易漏掉循环条件的错误;
  2. 数组的索引范围是0到length-1,所以遍历数组的循环几乎都是用i < array.length作为条件,这是Java里的常规操作,记下来哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:31:59