黑马程序员技术交流社区
标题:
数组for循环问题
[打印本页]
作者:
忧伤
时间:
2013-6-2 10:07
标题:
数组for循环问题
int yyao[]={12,1,13,11,2,15};
for(int i=5;i>-1;i--){
System.out.println(yyao[i]+",");
}
为什么不能写成下面这样
for(int i=yyao.length;i>-1;i--){
System.out.println(yyao[i]+",");
}
作者:
赵乐
时间:
2013-6-2 10:12
int yyao[]={12,1,13,11,2,15};
for(int i=5;i>-1;i--){
System.out.println(yyao
+",");
}
为什么不能写成下面这样
for(int i=yyao.length;i>-1;i--){
//可以啊,不过 不是 i=yyao.length 要改成i=yyao.length-1 最大角标是数组长度-1
System.out.println(yyao
+",");
}
作者:
吴文彬
时间:
2013-6-2 10:15
yyao.length 的 值是6.
楼主可以System.out.println(yyao.length); 输出看看
然后 因为数组下标是从0开始的,所以最后那个元素的下标是5.
而楼主是从下标6开始输出,所以下标越界了,会报错。
应该写成
for(int i=yyao.length - 1;i>-1;i--){
System.out.println(yyao[i]+",");
}
作者:
HM张博文
时间:
2013-6-2 11:02
二楼的正解,参考下吧
作者:
孔雀东南飞
时间:
2013-6-2 13:57
楼主:
1、yyao.length 表示数组的长度,不是数组的下标,在您的代码中yyao.length 值为6.
2、代码中
for(int i=yyao.length;i>-1;i--){
System.out.println(
yyao
+",");
//下表最大到5,这里越界了。
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2