我试图计算数组中数字的平均值。与Python不同,以下内容对我不起作用: not working
但是,如果我做this一切都没问题。
有没有办法让它像Python一样工作?没有为输入数组分配变量?
我的代码:
public class TestTwo {
public static void main(String[] args) {
double[] arx = {1,2.0,4,5,6,7.0};
System.out.println(average(arx));
}
public static double average(double [] args) {
double sum = 0.0;
for (double d : args) {
sum += d;
}
return sum / args.length;
}
}
答案 0 :(得分:3)
不要将Java与python进行比较。它们是两种不同的语言。
图像中的代码无法编译,因为编译器无法推断出类型。如果您不想编写变量,那么您只需传递匿名数组即可。例如new double[]{...}
。
System.out.println(average(new double[]{1,2.0,4,5,6,7.0}));
如果您使用的是Java 8,则可以将代码缩减为:
public static void main(String[] args) {
System.out.println(
Arrays.stream(new double[]{1,2.0,4,5,6,7.0})
.average()
.getAsDouble()
);
}
答案 1 :(得分:1)
如果要避免创建额外变量,可以在方法调用中创建数组:
System.out.println(average(new double[] {1,2.0,4,5,6,7.0}));
答案 2 :(得分:1)
制作数组时必须定义数据类型。因此,您的代码必须如下所示:
public class TestTwo {
public static void main(String[] args) {
System.out.println(average(new double[] {1,2.0,4,5,6,7.0}));
}
public static double average(double [] args) {
double sum = 0.0;
for (double d : args) {
sum += d;
}
return sum / args.length;
}
}
与python不同,Java需要被告知您正在创建一个对象以及该对象在创建时的类。这可能是答案,但通常最好将数组保存为变量。