如何使用var args方法在java中添加int和int []?

时间:2017-04-02 11:25:37

标签: java

这是我的第一个问题所以我可能听起来很愚蠢,所以请不要介意! 我正在研究一个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 []”

那么有人可以给我这个问题的解决方案吗? 谢谢!!

4 个答案:

答案 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