class VariableParameter
{
public static void main(String[] args)
{
System.out.println(add(1,2,3));
}
public static int add(int x,int ...args)
{
int sum =x;//为什么这里要等于X,不是应该0吗?求讲解循环过程。
for(int i =0;i<args.length;i++)
{
sum+=args;
}
return sum;
}
}
Sorry,没仔细看哈。你这个是可变形参的方法,你在add方法中你可以先输出一下args.length,你就会发现这个可变形参长度比真实长度小一,也就是说add( int x , int ... args )中第一个参数是指传入参数列表的第一个元素,args是剩余的其他元素。当你Sum=0时,1计算根本不会被加入,只会加入2和3,因此此时结果是5,作者: 李金中 时间: 2014-2-17 21:18
额,这个是 表示除了可变参数以外,你前面还可以有一般参数。我之前看这块就迷糊了。。。
你如果不想要一般参数,只有可变参数可以这么写
public static int add(int ... args)
{
int sum = 0;
for(int i = 0; i < args.length; i++)
{
sum += args[i]
}
return sum;
}