这是我的代码:
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
答案 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);