这是我的第一个问题所以我可能听起来很愚蠢,所以请不要介意! 我正在研究一个var args的概念,我想出了一个如下程序:
package Method;
public class VariableArguments {
public static void main(String[] args) {
m1();
m1(10);
m1(10,20);
m1(10,20,30,40);
m1(10,20,30,40,50);
}
public static void m1(int... x)
{
int total = 0;
for(int i:x)
{
total = total + x;
}
System.out.println("Sum is: "+total);
}
}
当我运行此程序时,我收到的错误是 -
错误:(15,27)java:二元运算符'+'的错误操作数类型
第一种类型:int第二种类型:int []
在第15行中,它表示“运算符'+'不能应用于int,int []”
那么有人可以给我这个问题的解决方案吗? 谢谢!!
答案 0 :(得分:1)
您需要将total
添加到i
(每个元素),而不是添加到var args。数组(即x
),所以将代码更改为:
total = total + i;
答案 1 :(得分:1)
错误是因为您尝试使用完全不兼容的数据类型进行数学运算...实际上您正在尝试添加带有整数数组的整数
你的意思是肯定的
total = total + i;
因为两者都是相同的类型(int)
这样做
total = total + x;
你要将int添加到一个int数组......
答案 2 :(得分:1)
避免愚蠢的错误,您需要学习 for-each 方法:
for(int i : x) // this means for every integer value *i* in array *x*
{
total = total + i ;// this line add the i to total ,
//total = total + x ;//here array is bad operand for '+' operator .
}
通过上面的snnipet更改代码,或者也可以使用简单的for循环。
答案 3 :(得分:0)
执行此操作时:
x
+
是数组。您无法在数组上使用x
运算符,因此也就是错误。 由于你在迭代数组 total = total + i;
,我觉得你想要这个:
java -cp jarfile1.jar;jarfile2.jar;jarfile3.jar;yourmainjar.jar MainClass