黑马程序员技术交流社区
标题:
关于可变参数的累加问题
[打印本页]
作者:
明月几时有
时间:
2013-11-24 11:56
标题:
关于可变参数的累加问题
class VaviableParameter{
public static void main(String[] args) {
System.out.println(add(1,2));
System.out.println(add(1,2,3,4));
public static int add(int x,int...args){
int sum=x; //这里为什么不是 sum=0?
for (int i=0;i<args.length;i++)
{
sum+=args[i];//不然这里第一个sum=x+x,岂不是加重了,但是结果又是正确的
}
}
}
}
作者:
肖川
时间:
2013-11-24 12:44
args[0]是后面数组中的第一个元素,当然不包括x啊。所以sum+=args[i]第一次执行是sum=x+args[0]不是sum=x+x;所以结果当然是对的啊。当参数只有一个的时候,sum=x;所以不能令sum=0;
作者:
王雷1
时间:
2013-11-24 15:16
首先你的num=x,而x是外面传进来的值,所以不可能跟传进来的值不一样,你传的不是0,所以它肯定不是0,第二,你的args[i]是后一个也就是第二个参数,如果你上面这么传,args[0]应该是2,args[1]是3,args[2]4,是这样的你明白了么
作者:
潘际昌
时间:
2013-11-24 16:15
public static int add(int x,int...args){
int sum=x; //这里为什么不是 sum=0?
for (int i=0;i<args.length;i++)
{
sum+=args[i];//不然这里第一个sum=x+x,岂不是加重了,但是结果又是正确的
}
}
复制代码
首先你的add方法传入的是一个int类型x和一个int类型数组args,x和数组args没一点关系,所以args
跟x根本是两个概念,x是不属于数组里面的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2