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



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

最新更新