【66-70关】基础课程-for循环【下】

学习目标:

1、进一步学习for循环,能够灵活用于其它对象。

2、for循环进阶练习,理解并掌握嵌套循环的使用,这个知识比较难理解,需要多练习,多思考去想明白。

知识讲解:

“嵌套循环”是循环内部再加一个循环。外层循环称为外循环,内层循环称为内循环。当使用嵌套的“for”循环时, 它的执行过程是由外到内,外层循环每执行一次,内层则执行一个完整的循环。

让我们想象一下,我们在找一个人,他在一栋五层的楼里。每一层都有好多个房间,我们怎样确保找遍每一层的每一个房间?

来看看下面的程序代码(#表示注释,也就是他后面的部分不会作为代码执行)

for f in floors #外循环从一楼开始一层层找

for r in roomsOf f # 内循环每一层楼的房间挨个找

search r

goUp # 当这一层找完了,我们再上一层

解释:外循环开始执行,进入第一层,然后进入每层楼的内循环,我们将检查所有房间。内循环执行结束,表示找完了了一层的所有房间,我们再回到外循环,进入下一层,到达二楼,然后内循环将从二楼开始搜索每一个房间,这样继续下去。

实战练习:

下面我们将迎来一个新的角色(对象)——鳄鱼。鳄鱼是用来形成水中的一座桥梁,帮助codemonkey吃到香蕉。他们只能“turn”或“turn To”。我们也可以通过创建“for”循环,来代替告知每一只鳄鱼进行转向。代码可以这样来写:

for c in crocodiles

    c.turnTo banana

这个“for”循环有一点点不同,想一下我们如何让乌龟前进的?turtle.step

好,鳄鱼也是一样的。我们要告诉他们转向(crocodile.turnto),这就是为什么循环的变量(c)是在函数名(turnTo)前面。

第66关:根据上面的所讲的知识,通过for循环控制三只鳄鱼转身,形成小桥,然后小猴就可以去吃到香蕉了。

【66-70关】基础课程-for循环【下】

第67关:这一关鳄鱼可没有那么听话排的整整齐齐的,如下图所示。不能简单的用向左、向右了,我们这里要用到turn to ,面向谁呢?大家思考一下吧。

【66-70关】基础课程-for循环【下】

第68关:越来越难拿到香蕉了,这一关我们要靠鳄鱼过河,然后还要走完整个小岛,其实我们发现这一关就是第66关与第63关的结合,回忆一下,那么本关只需要通过2个循环就可以搞定啦。

【66-70关】基础课程-for循环【下】

第69关:如果你看明白了本节知识讲解讲述的嵌套循环,那么这一关你应该有了思路,我想你这一关估计要花点时间,因为嵌套循环的确有点不太好理解,别着急慢慢想。                

【66-70关】基础课程-for循环【下】

思路:外层循环指定香蕉,每循环一次吃到一个香蕉,这里内循环就需要鳄鱼配合了,内循环指定鳄鱼,让鳄鱼转向外循环所指定的香蕉,这样小猴就能吃到了。

第70关:上一关都没难倒我们,这一关岂不是更简单了?从难度进阶上,在此我到想建议69关与70关前后换个前后顺序。

【66-70关】基础课程-for循环【下】

课后练习:完成本系列知识对应的特技关卡

【66-70关】基础课程-for循环【下】

循环中嵌套循环是比较难理解的,希望大家多多练习,理解并能够灵活运用。

答案:

【66-70关】基础课程-for循环【下】

【66-70关】基础课程-for循环【下】

【66-70关】基础课程-for循环【下】

【66-70关】基础课程-for循环【下】【66-70关】基础课程-for循环【下】

(欢迎大家留言交流,希望本系列能帮助到学习中遇到困难的家长和孩子们,真正在玩中学习到知识。如果你想购买,可以加入少儿编程网官方qq群,人数20+可以组团购买)