运行此程序时出错

时间:2018-05-05 23:36:16

标签: java

这是我的代码:

import java.util.Random;

public class Arrayss3 {

    public static void printArray(double a[]) {
        for(int i=0;i<a.length;i++) {
            System.out.println(a[i]);
        }
    }

    public static void main(String args[]) {
        Random gen=new Random();
        double [] a=new double[10];
        Arrayss3 ar=new Arrayss3();

        for(int i=0;i<a.length;i++) {
            a[i]=gen.nextInt(141)+60;
            System.out.println(printArray(a[i]));
        }
    }

}

以下是我运行时给出的错误:

Arrayss3.java:20: error: incompatible types: double cannot be converted to double[]
System.out.println(printArray(a[i]));
                               ^
Note: Some messages have been simplified; recompile with -Xdiags:verbose to get full output
1 error

2 个答案:

答案 0 :(得分:0)

<强>修正:

你添加了#34;加倍[]&#34;作为printArray的参数,而你只使用它作为&#34; double&#34;。

<强>建议:

  • 我建议你使用Random gen = new Random();在你的主方法之外,如果你想在任何其他方法中再次使用它,为了更好的性能,如降低使用的内存。确保使其静止。

  • 您使用过Arrayss3 ar = new Arrayss3();而你已经在Arrayss3类。只需使用printArray而无需此对象。

  • 您正在打印一个没有返回任何内容的方法。如果你想要这个方法返回,请使用类似的东西:

    static Random gen = new Random();
    
    public static void main(String[] args) {
        double[] a = new double[10];
        for (int i = 0; i < a.length; i++) {
            a[i] = gen.nextInt(141) + 60;
        }
        for (Double value : printArray(a)) {
            System.out.println(value);
        }
    }
    
    public static ArrayList<Double> printArray(double a[]) {
        ArrayList<Double> arrayList = new ArrayList<Double>();
        for (int i = 0; i < a.length; i++) {
            arrayList.add(a[i]);
        }
        return arrayList;
    }
    

    }

最终代码:

你需要使用这样的东西才能让它发挥作用。

import java.util.Random;

public class Arrayss3 {
    static Random gen = new Random();

    public static void main(String[] args) {
        double[] a = new double[10];
        for (int i = 0; i < a.length; i++) {
            a[i] = gen.nextInt(141) + 60;
        }
        printArray(a);
    }

    public static void printArray(double a[]) {
        for (int i = 0; i < a.length; i++) {
            System.out.println(a[i]);
        }
    }
}

答案 1 :(得分:-1)

程序即将结束:

for(int i=0;i<a.length;i++)
{
  a[i]=gen.nextInt(141)+60;
  System.out.println(printArray(a[i]));  // error
}

您使用printArray()致电a[i],但声明printArray采用double[],而不是单个元素。可能你想在循环之后移动该语句,并删除println

for(int i=0;i<a.length;i++)
{
  a[i]=gen.nextInt(141)+60;
}
printArray(a);