黑马程序员技术交流社区
标题:
一个可变参数的问题,谁帮忙看一下?
[打印本页]
作者:
高双武
时间:
2011-11-7 20:46
标题:
一个可变参数的问题,谁帮忙看一下?
package students;
public class VariableParaments {
public static int addSum(int x,int ... args){
int sum=0;
for(int i=0;i<args.length;i++){
sum=sum+args[i];
}
return sum;
}
public static void main(String [] args){
System.out.println(addSum(1,2,3,4,5));
}
其中args.length是指数组长度,为什么在调试时显示长度值是4,不是有五个数吗?
作者:
郭敏
时间:
2011-11-7 20:58
因为你在addSum 方法中传入了两个参数,其中一个为可变参数,
作者:
刘福双
时间:
2011-11-7 20:59
本帖最后由 刘福双 于 2011-11-7 21:22 编辑
数组的下标是从0 开始的
0、1、2、3、4
五个数
例子证明下:
public class as {
public static void main(String[] args){
System.out.println(addSum(1,2,3,4,5));
}
public static int addSum(int ... args){
int sum=0;
for(int i=0;i<args.length;i++){
sum=sum+args
;
}
return sum;
}
}
如果定义int x,int ... args就会忽略一个数
作者:
高双武
时间:
2011-11-7 21:39
谢谢你们的回答,刚才测试了一下,好像是这样,x并不属于args[]数组里面的数,数组里只存了2,3,4,5那个1直接存在变量x里了
作者:
史晓霞
时间:
2011-11-7 22:56
出入的是5个参数,但是第一关参数传给了第一关参数x,后面的4个才真正传给了args,所以是4个,我感觉这就是我们定义的可变参数都是放在最后面,不然就会出现错误,不然我们都不知道怎么传给参数值了,系统也不会识别的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2