随着近期招聘市场上Java岗位的异常火爆,更多的准从业者为了能够成功就业,选择了与Java相关的培训或自学。而在学习中不免碰到一些疑难问题,比如for循环的嵌套,如果搞不懂,很可能会影响到后面的学习。对此,传智播客济南校区特意针对这个知识点做了详细的解答,便于初学者或自学者掌握。
下面,我们就开始对for循环嵌套进行详细的解答:
首先,我们发现使用for循环可以方便的遍历一维数组中的元素。因为一维数组只有一个索引是变化的,我们用变量i表示索引,让它从0-3 变化,就得到了数组的所有元素。
那么我们如何遍历二维数组呢?按照传智播客教学的传统思路我们先来分析一下。
我们发现二维数组的大括号内还有一层大括号,这说明数组中还有数组。也就是说二维数组中的元素是一维数组。
当我们根据一维数组的逻辑去输出二维数组arr的0号元素的时候:
我们发现arr[0] 输出的结果是一个地址值。我们按照一维数组遍历方式看看:
不出所料,里面存的是两个地址值。这也证明了二维数组中的元素其实是一维数组。我们通过一个变量i是无法既表示二维数组的索引,又表示一维数组的索引的。
因此我们还需要一个变量,也就还需要再引入for循环的嵌套。先得到里面的一维数组再遍历这个一维数组得到里面的整数。
我们按照思路用了i 和 j 两个变量表示二维和一维的两个索引,但是! 7 去哪了??为什么结果只输出了1 2 3 4 5 6 ?
在传智播客上课时老师经常会跟学员说遇到bug不要慌。这里,请注意看图片中黄色的地方。我们 j 的取值范围是0 到arr[0].leagth 那么arr[0].length等于几?它表示的是二维数组中0索引元素的长度,也就是第一个数组的长度,也就是{1,2,3}这个数组的长度,它的长度是3。但是我们发现第二个数组比第一个一维数组长,那么我们遍历第二个数组的时候就不能还按照长度3去遍历了。也就是说这个范围应该是变化的。好,我们来改一下:
只需要轻轻一改 我们就完美的打印出了所有的整数元素。大功告成!这里我们需要注意的就是内层循环和外出循环到底是管的什么。
案例驱动,多敲多练是传智播客推荐的学习方法。下面有两段代码,自学或初学者可以看代码思考输出结果,先自己分析,然后运行验证一下,看看是不是如你所想。
1 :
2:
到此为止,与for循环嵌套相关的知识就讲解完了。如果你想继续深入或系统地学习Java,不如考虑到传智播客来学习吧!