这是我的第一个问题,所以我听起来可能很愚蠢,所以请不要介意!我正在研究一个概念,即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:二进制运算符"+"的操作数类型错误
第一种类型:整数 第二种类型:整数[]
在第 15 行中,它说"运算符 '+' 不能应用于 int, int[]">
那么任何人都可以给我解决这个问题的方法吗?谢谢!!
将total
添加到i
(每个元素(中,而不是添加到var args.数组(即x
(,因此将代码更改为:
total = total + i;
错误是因为您尝试使用完全不兼容的数据类型进行数学运算......实际上,您正在尝试添加一个带有整数数组的整数
你的意思是肯定的
total = total + i;
因为两者都是相同的类型(int(
通过这样做
total = total + x;
您正在将 int 添加到整数数组中...
避免愚蠢的错误,你需要学习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 循环。
当你这样做时:
total = total + x;
数组x
。不能对数组使用 +
运算符,因此会出现错误。由于您正在迭代数组 x
,我感觉到你想要这个:
total = total + i;