A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 乔九 中级黑马   /  2013-1-15 23:35  /  1308 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张向辉 于 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?

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
高境 + 1 赞一个!

查看全部评分

回复 使用道具 举报
必须是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;
}

评分

参与人数 1技术分 +1 收起 理由
Rancho_Gump + 1 赞一个!

查看全部评分

回复 使用道具 举报
好吧解释一些通俗的....
  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)


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马