黑马程序员技术交流社区
标题:
高新技术中的可变参数,闹不懂了
[打印本页]
作者:
贾旭
时间:
2012-3-20 19:23
标题:
高新技术中的可变参数,闹不懂了
1. public static int add(int ... args){
int sum=0;
for(int arg:args){
sum+=arg;
}
return sum;
}
System.out.println(add(200,400,800));
结果:1400
2. public static int add(int x,int ... args){
int sum=0;
for(int arg:args){
sum+=arg;
}
return sum;
}
System.out.println(add(200,400,800));
结果:1200.
3. public static int add(int x,int y,int ... args){
int sum=0;
for(int arg:args){
sum+=arg;
}
return sum;
}
System.out.println(add(200,400,800));
结果:800.
我是真闹不懂了,怎么
add(int x,int ... args)就把200忽略了呢。求解
作者:
谢明
时间:
2012-3-20 19:42
其实原因在于这句 for(int arg:args) 中的 args 的值 他是一个数组 而不包含(int x,int y,int ... args) 中的 x y
作者:
魏群
时间:
2012-3-20 20:01
public static int add(int x,int ... args){
int sum=0;
for(int arg:args){
sum+=arg;
}
return sum;
}
System.out.println(add(200,400,800));
结果:1200.
因为你的方法里只是执行了形参args参数的累加并没有在加上形参x
add(200,400,800));时200是匹配的形参x 400,800是匹配的形参 args
作者:
李飞
时间:
2012-3-20 20:11
1. 把可变参数看成是一个长度不确定的数组。其实你也知道呀,不然不会用for循环呢
2. 加强for循环
for(int arg: args){
}int——>数组的类型,arg——>数组中的元素,相当于args[i],args——>遍历的数组
你这里用到的就是args
作者:
贠(yun)靖
时间:
2012-3-21 00:13
可变参数一定要定义在参数的最后面。
1. public static int add(int ... args){
int sum=0;
for(int arg:args){
sum+=arg;
}
return sum;
}
System.out.println(add(200,400,800));
结果:1400
这里因为定义了一个int变量 所以传参的时候前两个是int型的参数,最后两个才是数组的可变参数
2. public static int add(int x,int ... args){
int sum=0;
for(int arg:args){
sum+=arg;
}
return sum;
}
System.out.println(add(200,400,800));
结果:1200.
这里因为定义了一个int变量 所以传参的时候前两个是int型的参数,最后两个才是数组的可变参数
3. public static int add(int x,int y,int ... args){
int sum=0;
for(int arg:args){
sum+=arg;
}
return sum;
}
System.out.println(add(200,400,800));
结果:800.
作者:
贾旭
时间:
2012-3-21 10:27
灰常感谢楼上的几位。{:soso_e113:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2