黑马程序员技术交流社区
标题:
myEcilpse中的一点问题
[打印本页]
作者:
风云
时间:
2013-6-8 17:56
标题:
myEcilpse中的一点问题
本帖最后由 风云 于 2013-6-12 17:01 编辑
package cn.itcast.day1;
public class VarableParameter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(bb(2,3));
System.out.println(bb(2,3,5));
}
public static int bb(int x,int... args){
int sum = x;
for(int i=0;i<=args.length;i++){
sum += args
;
}
return sum;
}
}
运行这个小程序时为什么会提示这样的错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at cn.itcast.day1.VarableParameter.bb(VarableParameter.java:15)
at cn.itcast.day1.VarableParameter.main(VarableParameter.java:9)
作者:
wangpan
时间:
2013-6-8 18:56
public static int bb(int x,int... args){
int sum = x;
for(int i=0;i<
=
args.length;i++){
sum += args
;
}
return sum;
}
这里不应该写=号,因为i从0开始,应该到args.length-1是正常的循环范围。=的时候数组就越界了
如果你想用<=,那么i应该从1开始。
作者:
曹秀云
时间:
2013-6-9 09:50
回个帖又不会怀孕!
作者:
杨增坤
时间:
2013-6-11 23:37
public static int bb(int x,int... args){
int sum = x;
for(int i=0;i<=args.length;i++){
sum += args[i];
}
return sum;
}这个方法中for循环超出了范围了!数组的下面是从0开始到length-1结束,所以i<args.length
作者:
刘晓
时间:
2013-6-12 19:29
ArrayIndexOutOfBoundsException这是异常的一个提示,它的意思是数组越界的提示,你把异常那一天的视频好好看看,这些很容易看懂的。
解决办法:把for循环里面的 for(int i=0;i<=args.length;i++)改成 for(int i=0;
i<args.length
;i++)或者 for(
int i=1
;i<=args.length;i++)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2