codemonkey少儿编程【86-95关】基础课程-直到沙地

学习目标

1、回顾我们学习过的简单循环和for循环

2、练习使用until循环

3、学会使用near函数

4、在函数内使用until循环

5、for循环、函数、until循环的综合使用

知识讲解:

在这节课中,我们将使用一种新的循环:“until”环。这个循环非常有用,但是也很危险。

有用是因为它可以帮助我们去做一些重复性的操作直到完成。如果我们在使用的时候不够谨慎,往往会出现死循环(程序会无休止地执行,停不下来),所以说它也很危险。

“until”循环包含了一个循环控制条件,当不满足条件时重复执行,直到条件满足停止循环。当程序运行时,每循环一次计算机都会对条件进行检查,如果是false(“假”也就是条件不成立),循环继续,如果是true(“真”也就是条件成立)循环将结束。

例如:我们赛跑,要重复循环的动作就是跑,一直到抵达终点,便可以停下来了。

until 抵达终点 <循环控制条件,到达终点即为“真”,停止循环,否则继续执行>

run

如果我们不注意,我们可能会给“until”循环的一个永远不能为“真”的条件。这将让循环永远执行下去,最终可能导致程序崩溃。例如:

until 太阳从西边升起 <循环控制条件,不可能为“真”,那么你就永远一直跑吧>

run


实战练习:

第86关:这一关要我们通过程序来体会一下until的用法,程序阅读:前进一步直到接近火柴停止移动,然后拾取火柴,进入下一个循环继续前进直到接近火柴堆,停止前进。我们还差最后一个操作是什么?

【86-95关】基础课程-直到沙地

第87关:这一关开始之前先问你一个问题,你现在离门近吗?那么你的回答可以是“是”也可以是“不”,同理near 函数也会返回一个结果“yes”或者“no”,我们怎么知道?很简单,用say指令(例如 say near pile),看看会说出什么。until直到后面的条件返回“yes”才会停止循环,否则会一直执行下去。让我们试一试看看。

【86-95关】基础课程-直到沙地

第88关:这一关稍稍增加了难度,还是继续熟悉掌握until的用法,注意的是,在拾取火柴后,要调整方向,然后一直前行,直到接近火柴堆,放下火柴就过关了。

【86-95关】基础课程-直到沙地

第89关:在这几关中,我们发现使用之前的step distance to其实更简单,没错,不过我们主要是让大家了解until,那什么时候用until呢,这是重点?就本关来说应该就是在我们无法知道老鼠到火柴的距离的时候用最合适(你看蚂蚁一直在拖动火柴,所以他们之间的距离是没法固定的),比如你的小伙伴抢走了你的玩具,你是不是要一直追,直到追上他为止(until near him),我们是无法明确要向他走多少步或跑多少米的。

【86-95关】基础课程-直到沙地

第90关:知道什么时候用until了吧,你看蚂蚁又在拖动火柴,快快转身,去取回火柴,这可是一场赛跑呀(无法确定到火柴的距离,需要用until循环,不断前进),直到你靠近火柴,拾取火柴,然后转向火柴堆,移动到火柴堆,放下火柴,过关。

【86-95关】基础课程-直到沙地

第91关:这一关思路上没有任何难度了,考察的就是我们自己动手能力,本关没有一行代码,自己去完成until循环,取回火柴吧。

【86-95关】基础课程-直到沙地

第92关:这一关考察大家的debug功力了,思路很简单,让乌龟前行到小桥旁为帮助老鼠过河,程序中有一个小bug需要你去修复,建议先点运行,看看发生了什么,然后去查找原因,修复bug【提示:就一个小小错误】。

【86-95关】基础课程-直到沙地

之前讲过until何时使用,这一关就完全没必要使用,你们觉得呢,要不要按照自己的思路再写一个答案,过关。答案如下图:

【86-95关】基础课程-直到沙地

是不是超简单,不过这样只能得到一颗星。知识需要灵活运用,这一关不给三颗星,主要还是设计者希望大家学会调试,并巩固until循环的知识。

第93关:这一关取到火柴就没有以前那么简单了,不仅距离是变化的,而且老鼠与火柴的方向都在变化,因此我们还是需要用到until循环,每次循环都调整一下老鼠的方向,前进一步,直到接近火柴,你们是不是这么想的。

【86-95关】基础课程-直到沙地

想象一下你在跟同学玩追逐游戏的时候是不是一边跑一边改变自己的方向,让自己始终面向对方,只要你跑的比他快,肯定能追上他对不对。

第94关:还记得函数吗?这一关函数又与大家见面了,我们要定义一个chase函数,阅读代码得知它要实现的功能就是抵达某个对象处(对象就是传入的参数,比如火柴、火柴堆)在这个函数里我们需要用到until循环,一步步靠近目标,直到接近它。

【86-95关】基础课程-直到沙地

第95关:这是一个比较综合的关卡,涉及了之前所学的for循环,函数的定义与调用,函数内使用until循环,不过不用怕,只要你思路明确,顶多就是多写几行代码的事。

【86-95关】基础课程-直到沙地

三根火柴,首先我们就想到要用for循环挨个去拾取,在拾取每一根火柴的时候(for循环内)我们又需要使用chase函数(函数内具体通过until循环来实现功能)去抵达火柴,拾取火柴,chase函数抵达火柴堆,放下火柴,重复以上操作去拾取第二根火柴,最终把所有火柴matches全部取回,过关,思路就这么简单。右侧已给出了主程序部分,如下图所示:

【86-95关】基础课程-直到沙地

答案:

【86-95关】基础课程-直到沙地【86-95关】基础课程-直到沙地【86-95关】基础课程-直到沙地codemonkey少儿编程【86-95关】基础课程-直到沙地codemonkey少儿编程【86-95关】基础课程-直到沙地codemonkey少儿编程【86-95关】基础课程-直到沙地codemonkey少儿编程【86-95关】基础课程-直到沙地codemonkey少儿编程【86-95关】基础课程-直到沙地codemonkey少儿编程【86-95关】基础课程-直到沙地codemonkey少儿编程【86-95关】基础课程-直到沙地

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

   口袋儿题库-青少儿编程自测题库