首页 > 解决方案 > 为什么 Java 在尝试打印大随机数时会报告不匹配?

问题描述

Java 在尝试打印大数字并存储数组时报告类型不匹配异常。

我目前正在学习一些Java。我正在做的课程的一项练习要求我生成一些随机数并将它们存储在一个数组中。只要我生成整数,一切正常,我可以使用 out.print 毫无问题地打印它们。

但是,当我生成大数字并尝试打印它们时,Java 会在我有 for each 循环的行中通知类型不匹配。

package clases;

public class Arrays_3 {
    public static void main (String [] args) {
        long [] array_random=new long[150];
        for (int i=0;i<array_random.length;i++) {
            array_random[i]=(long)Math.round(Math.random()*100000) ;
        }

        for (long elemento:array_random) {
            System.out.println(array_random[elemento]);
        }
    }
}

这是我在运行上面的代码后在 Eclipse 控制台上遇到的错误:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    Type mismatch: cannot convert from long to int

    at clases.Arrays_3.main(Arrays_3.java:17)

第 17 行是System.out.print方法所在的位置。

标签: java

解决方案


我猜你正在尝试打印元素。您正在循环的是值(int 类型)而不是索引(long 类型)。

      for (long elemento:array_random) {
            System.out.println(elemento);
        }

推荐阅读