首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

大神,帮忙指点一下,看哪里出有关问题了,小弟我刚接触JAVA,还不熟练

2013-03-26 
请教各位大神,帮忙指点一下,看哪里出问题了,我刚接触JAVA,还不熟练。public class Test {public static voi

请教各位大神,帮忙指点一下,看哪里出问题了,我刚接触JAVA,还不熟练。
public class Test {

public static void main(String[] args) {
int[] a = new int[]{ 8, 6, 5, 4, 1 };
for (int i = 0; i < a.length; i++) {
int b = a[i + 2];
a[i + 2] = a[i];
a[i] = b;

}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
}
}
}
[解决办法]
这个明显超出数组的长度了吧
[解决办法]
当你的代码里面出现这样的东西for (int i = 0; i < a.length; i++)
那么说明i可以迭代到最后,那么i+1, i+2等等的下标都会越界的,当然你可以这样改
for (int i = 0; i < a.length - 2; i++) { 
[解决办法]
int b = a[i + 2];
a[i + 2] = a[i];
问题在这两行,“i+2”会大于a.length的最大值;所以会出现溢出。。。
[解决办法]
多考虑边界情况,比如循环到最后一次的时候,
a[i+2] = a[6]
但是数组a最大也就a[4]
明显是错的
[解决办法]
LZ这样循环,数据下表越界了!

热点排行