CODEMONKEY 56-70基础课程- for循环森林【上】

学习目标

到现在为止,你已经掌握了一些基本的方法。诸如“step”和“turn”、简单循环和变量等功能。

在本课中,我们将介绍一种新的循环“for”,“for”循环看起来很吓人,但实际上是很简单的。遍历集合是计算机中的一个基本概念。在编写代码时经常使用,所以确实值得多花一些时间练习使用它。

1、认识简单循环和“for”循环之间的区别

2、明白如何以及何时使用“for”循环

知识讲解:

“for”循环有两部分:循环变量和数组。循环变量是我们分配的一个名称。它可以是我们想要的任何名称,跟我们定义其它变量一样。Codemonkey里经常用数组的第一个字母进行命名。

回忆一下,数组是对象的集合。例如:我们有一个数组含有六个香蕉,每个香蕉都有自己的名字,所有的香蕉一起有一个名称,它是数组的名称,第56关就可以来说明这一点。

实战练习:

第56关:点击一个香蕉,旁边会出现两个按钮,上面那个是这个香蕉的名字,试着点击另一个香蕉,您将看到每个香蕉的名称都有不同的编号。下面的按钮是数组的名称。这六个香蕉都属于数组“bananas”,因此不管我们点击哪个香蕉,下面的按钮都显示“bananas”,如下图所示。

CODEMONKEY 56-70基础课程- for循环森林

本关已提供了可以正确运行的代码,如下图所示。

CODEMONKEY 56-70基础课程- for循环森林

for(告诉计算机这里有一个“for”循环)b(定义循环变量)in(“for”循环语法的一部分)bananas(数组的名称)

turn To b(b是循环变量,指的是数组的一个对象)

step distanceTo b(b是循环变量,指的是在数组的一个对象)

需要能够理解b与bananas的关系,这里b是一个变量,bananas是一个数组,每次都将从数组中取出一个对象赋值给变量b,即b = bananas[0]、b = bananas[1]、b = bananas[2]、b = bananas[3]、b = bananas[4]、b = bananas[5],这样重复去吃掉每一个香蕉,运行的时候注意观察,小猴吃香蕉的顺序。

第57关:这一关我们需要手动写点代码了,上一关你明白了b代表的就是一个香蕉对象,那么这一关你就会很容易过关了。(思考,如果我将第一行代码改为:for a in bananas那么后面应该怎么写?)

CODEMONKEY 56-70基础课程- for循环森林

第58关:这一关我们又需要乌龟帮忙了,如果还跟上一关一样的方法那么你会发现小猴“扑通、扑通”的掉水里了…,因此本关要注意的就是,明确让哪个对象(小猴 or 乌龟)面向香蕉,并移动过去吃掉。【答案见文末】

CODEMONKEY 56-70基础课程- for循环森林

第59关:这一关首先要把可恶的老鼠们赶走,剩下的就是要完整的写出一个for循环了【答案见文末】

第60关:(综合练习),这一关需要我们书写全部完整代码,不要怕,我们都已经身经百战了对吧?好吧是半百。这一关只不是过是上一关的一个小小的演变,我们不会碰到可恶的老鼠,只不过是一座小桥罢了,如下图所示。

CODEMONKEY 56-70基础课程- for循环森林

思路很简单,首先我们需要通过小桥,然后利用for循环,吃掉每一个香蕉。【答案见文末】

好了,先休息一下,插播一个“广告”,你知道什么是算法吗?

为了解决某个问题或完成某件事而执行的一系列操作称之为算法。完成相同或类似任务时不同的算法可能在性能上有所差异,好的算法在功能上可能与时间和资源消耗、可读性等差异有关。

我们为每一关挑战编写的解决方案就是算法的表示,换句话说,一系列描述了我们希望计算机在编程语言中执行的语句即为算法。表示算法的方法有很多种,例如如流程图、伪代码、可视化代码块等等。

继续闯关:(用for循环控制其它对象)

第61关:通过for循环控制乌龟来为小猴铺路,还增加了一个变量x,运行一下发现乌龟前进的距离x不对,可以通过直尺工具测量一下,如下图所示。

CODEMONKEY 56-70基础课程- for循环森林

那么20应该在哪写呢?最后再让小猴前往香蕉即可过关,这里注意小猴最后前进不属于for循环的一部分,因此代码是没有缩进的。

第62关:本关提示“小心走路 ! 注意脚步 !”这一关要注意的就是在前往香蕉之前要先回到木筏处,因此我们的算法应该是这样:每次循环先面向木筏,然后移动到木筏处,再面向数组中的香蕉,前往香蕉。下图中不同的颜色表示了每次循环要执行的操作,试着根据这个思路完善代码吧。

CODEMONKEY 56-70基础课程- for循环森林

第63关:这一关没有任何代码,算是一个比较综合的练习关卡,我们先看下面的图,如果按照之前的经验,我们首先想到的是用for循环指定香蕉,但是发现,到达香蕉直线上是不通的,这么做小猴必定落水。那么我们换个思路,除了香蕉还有其他数组吗?“对!小岛是一个数组”,我们可以让小猴一步一步的走完所有小岛,香蕉不也就吃到嘴了嘛。

CODEMONKEY 56-70基础课程- for循环森林

因此本关学习的就是通过for循环指定islands对象。如何正确的使用for循环你理解了吗?

第64关,这一关看起来貌似有点复杂,没关系,还记得我最早教大家怎么去找规律吗?如下图所示:

CODEMONKEY 56-70基础课程- for循环森林

这样我们是不是就很容易写出代码了?每次循环小猴移动到指定的对象乌龟身上,然后前进去吃到香蕉。

思考:这里为什么用for循环指定了乌龟,而不指定香蕉呢?

假设我们指定香蕉,那么代码就如下所示:

for b in bananas

step 7

#乌龟前往b

发现最后一步乌龟的对象无法明确指定,因此选择for循环指定的对象就是我们循环内将要对他进行指定操作的那个才是合适的。

第65关:这一关与上一关很像,可以说相对还要简单一点,还是用我们找规律的方法帮助我们写代码(图解其实就是我们表示算法的一种方式)

CODEMONKEY 56-70基础课程- for循环森林

右边代码提示部分其实设置了一个小陷阱,中间只空了一行,并不代表只需要完善一行代码就可以了,大家不用理会,还是要根据我们分析去完善。

答案:

CODEMONKEY 56-70基础课程- for循环森林

CODEMONKEY 56-70基础课程- for循环森林

CODEMONKEY 56-70基础课程- for循环森林

CODEMONKEY 56-70基础课程- for循环森林

CODEMONKEY 56-70基础课程- for循环森林

CODEMONKEY 56-70基础课程- for循环森林

CODEMONKEY 56-70基础课程- for循环森林

CODEMONKEY 56-70基础课程- for循环森林


本站内容未经许可,禁止任何网站及个人进行转载。