黑马程序员技术交流社区

标题: for疑问 [打印本页]

作者: 胡高坡    时间: 2012-12-21 14:58
标题: for疑问
本帖最后由 胡高坡 于 2013-1-4 13:59 编辑

package cn.itcast.day1;
public class VariableParameter {
  public static void main(String[] args) {
System.out.println(add(2,3));
System.out.println(add(2,3,5));
}
public static int add(int x,int...args){
int sum=x;
for (int i= 0; i < args.length; i++) {
  sum=sum+args;
}
return sum;
}
}
其中把把sum初始化为0;结果为什么不同?

作者: 胡高坡    时间: 2012-12-21 15:32
刚问同学知道了,args[]数组在这里面是不包含方法中的第一个参数的。
作者: 王进亮    时间: 2012-12-21 16:38
sum=x这是接收第一个实参,然后进行累加。如果sum=0,那么传入的第一个实参就会丢失。
作者: 黄锦成    时间: 2012-12-24 16:48
public static int add(int x,int...args){
int sum=x;
for (int i= 0; i < args.length; i++) {
  sum=sum+args[i];
}
return sum;
}
你一开始初始化sum=x;如果初始化为sum=0;那么你就少加了x,sum肯定会变
作者: 勾尧    时间: 2012-12-24 23:23
arg[]是把出第一个参数以外的包装成一个数组,sum=0的话,x就没有进入运算,之前还没想过这个问题,支持




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2