黑马程序员技术交流社区

标题: 求指点 [打印本页]

作者: 乔九    时间: 2013-1-15 23:35
标题: 求指点
本帖最后由 张向辉 于 2013-1-16 10:49 编辑

public class VarableParameter
{

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=0;
  for(int i=0;i<args.length;i++)
  {
   sum+=args;
  }
  return sum;
}
}

结果怎么是3和8?

作者: jonn    时间: 2013-1-15 23:49
  1. public class VarableParameter
  2. {

  3.    public static void main(String[] args)
  4.   {
  5.     System.out.println(add(2,3));   //这里调用的add()方法,此方法用可变参数传递过去,第一个参数 2根本没起到作用,根本 就没有参加运算
  6.     System.out.println(add(2,3,5)); //  第一个得到了结果就是 sum=0+3
  7.                                                 // 第二个得到了结果就是 sum=0+3+5

  8.   }
  9. public static int add(int x ,int... args)   //这里使用的可变参数
  10. {
  11.     int sum=0;
  12.     for(int i=0;i<args.length;i++)
  13.     {
  14.       sum+=args[i];  // 进行累加的时候并没有加入 第一个参数 x,只累加了第二个可变参数
  15.     }
  16.     return sum;
  17.   }
  18. }
复制代码

作者: 谢毅    时间: 2013-1-15 23:51
必须是3和8啊
public static int add(int x ,int... args)
{
  int sum=0;
  for(int i=0;i<args.length;i++)
  {
   sum+=args[i];
  }
  return sum;
}
这里面用到了X吗?
要么你这样
public static int add(int x ,int... args)
{
  int sum=x;
  for(int i=0;i<args.length;i++)
  {
   sum+=args[i];
  }
  return sum;
}
作者: 黄金龙    时间: 2013-1-16 00:06
好吧解释一些通俗的....
  System.out.println(add(2,3));   这里add();是这样的.....x=2 args[0]=3,args[1]=0 所以这里结果就是3
  System.out.println(add(2,3,5)); 这里add();是这样的.....x=2 args[0]=3,args[1]=5,args[2]=0 所以这里结果就是8
函数
public static int add(int x ,int... args)







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