本帖最后由 小鲁哥哥 于 2017-7-26 10:59 编辑
【黑马程序员济南】循序渐进学习for循环嵌套
最近济南的天气很闷,而且雨也来的没脾气,大家出门不方便不如在家学编程吧~~(这理由fu不fu?)。黑马程序员济南中心的老师们特意给大家整理了比冰西瓜还可口的基础知识趣讲分享给大家~
今天我们来学习for循环的嵌套这个知识点。为什么要学习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相关知识,get软件开发新技能,成为一代大牛就来黑马程序员训练营吧!我们济南见!
|