黑马程序员技术交流社区

标题: 数组 [打印本页]

作者: songkaihua    时间: 2014-12-12 23:37
标题: 数组
本帖最后由 songkaihua 于 2014-12-21 21:48 编辑

用for遍历,那个x的范围,什么情况下想x=0,什么情况下x=1?x<=arr.length行吗?运行的时候我也不知道为啥有时候会显示超出范围,和x有关吗?

作者: Quasimodo    时间: 2014-12-13 00:26
如果你循环里有用X当数组的角标的话  那x的范围肯定不能超过数组的角标范围呀
数组.length 拿到的是数组的长度    但是因为角标是从0开始的  所以角标的范围就是 0 到 数组.length-1 之间
X就不能 =数组.length 了,会越界
作者: 清诗纪事    时间: 2014-12-13 01:19
我觉得是你对数组理解不够才会不明白这个的,for循环主要使用对数组遍历的,里边的限定条件就是根据题意写的
for(int i=0;i<arr.length;i++)、for(int i=0;i<=arr.length-1;i++)、for(int i=1;i<=arr.length;i++)表示的意思是差不多的,看你是要用数组的下标进行循环还是用数组的元素个数,你只需要明白每个分号代码的含义就可以理解了。
第一个分号前的语句i=0是遍历的起始位置,两个分号之间的是遍历的最终位置,最后的i++表示没进行操作一次i值+1.
作者: lgc黑马    时间: 2014-12-13 21:22
Int a[]={2,3,4,1,6,4};
作者: chudaming213    时间: 2014-12-13 22:45
这要看你在循环中怎么写了,但总的是要保证你遍历的角标范围是0----->length-1。你要是在for循环上写x=1;x<=arr.length;x++,那循环体里就得写arr[x-1]啦!!
作者: songkaihua    时间: 2014-12-19 00:30
Quasimodo 发表于 2014-12-13 00:26
如果你循环里有用X当数组的角标的话  那x的范围肯定不能超过数组的角标范围呀
数组.length 拿到的是数组的 ...

恩恩,懂了!谢谢!
作者: x277402301t    时间: 2014-12-19 00:32
角标是从0开始的!具体要看你先赋的初值!
作者: songkaihua    时间: 2014-12-19 00:33
chudaming213 发表于 2014-12-13 22:45
这要看你在循环中怎么写了,但总的是要保证你遍历的角标范围是0----->length-1。你要是在for循环 ...

我咋觉得应该是arr[x+1],为啥是-1?
作者: mike77546    时间: 2015-1-4 23:34
数组的下标是才从0开始的,所以一般都是写for(x=0;x<arr.length;x++); 硬要写x=1,那么下面的程序中写arr[x-1]




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2