第七章 第一节 循环结构

        所谓循环,即我们多次接触过的重复结构,本章将会详细学习它们。例如,创建循环积木、循环的嵌套结构和递归等。本章涉及的编程概念如下:
●重复执行语句的循环结构
●验证用户的输入
●使用循环计数器控制循环
●调用自身的递归过程

        虽然许多人认为重复性的任务非常无聊,但计算机对此得心应手。重复结构(专业术语称为循环)告诉计算机重复地执行一条或多条语句。最简单的循环是确定型循环,它以特定的次数重复一系列语句。除了指定重复次数,确定型循环有时还表现为使用循环计数器进行控制。
       本章还将学习一类循环是使用条件语句进行控制的不确定型循环,它们在某些条件成立之前会一直重复执行。最后一类循环叫作无限循环,它会永远重复执行。本章将详细学习 Scratch中的重复结构、停止积木(用来结束无限循环),以及用户输入的验证等。
       本章还会讨论嵌套循环(循环中包含循环),递归(过程自己调用自己,这是另一种重复执行的方式)以及相关案例。最后将探索多个使用循环和条件语句的有趣的程序,将循环与实际程序相结合。

三种循环结构

image

我们之前多次使用过重复执行…次重复执行,下面将介绍重复执行直到积木以及相关的术语。
   循环积木每重复执行一次,我们则称其进行了一轮或一次迭代。迭代的次数使用术语循环计数表示。你熟悉的重复执行…次积木就是确定型循环,因为它的迭代次数是确定的。当我们可以确定迭代次数时,这种积木便是首选。例如,之前绘制多边形时,我们指定的边数即为迭代次数。
     而重复执行直到积木为不确定型循环,因为它是根据条件测试的结果决定是否重复执行其内部的脚本。当事先不知道循环次数且直到某些条件成立之前希望一直循环时,我们通常使用该积木。使用它可以很自然地实现某些功能,例如,“重复执行询问…并等待,直到用户输入了正数”或者是“重复发射导弹,直到玩家的精力值低于某个值”。下面就随我一起探索不确定型循环吧!

重复执行直到积木

imageimage

       积木在迭代前先对布尔表达式求值,如果表达式结果为假,则执行循环主体内的脚本。当主体执行完后,积木再次对布尔表达式求值。如果表达式仍为假,主体再次被执行。只有当布尔表达式的结果为真时,迭代才会终止。此时,该积木不再执行主体部分,而是立刻执行其后的脚本。

       需要注意,若循环之前测试条件的求值结果已经为真,那么其主体脚本将不会被执行。同样,除非测试条件改变为真(无论是在本循环内还是在其他脚本中改变了测试条件),否则重复执行直到积木无法结束,从而成为无限循环。

案列讲解:猜数字游戏,直到玩家输入的与计算机生成的数一致时,退出循环,并提示答对了。

image

将重复执行和如果…那么结合

image

重复执行不仅是无限循环,而且还是无条件的无限循环,因为它没有任何条件测试,也就无法控制何时结束无限循环。然而,只需在其内部使用如果…那么积木便可以控制何时结束。因此,这种结构也称为有条件的无限循环,如上图所示。每次迭代脚本首先测试如果…那么积木的条件,仅当测试结果为真时才会执行其内部的脚本。注意,Scratch在设计时已经假设重复执行积木是永远执行的,因此其后无法卡合其他积木。

这种结构被广泛应用。例如:我们在弹小球的作品中,用到如果碰到…颜色,就停止全部脚本;用键盘方向键控制角色移动的脚本。

偿试用“重复执行…直到”积木替换原来的“重复执行”+“如果…那么”

偿试用将做过的项目,有用到“重复执行”+“如果…那么”的都替换成“重复执行…直到”积木。

image        image

posted @ 2020-11-18 16:23  有间学堂  阅读(711)  评论(0编辑  收藏  举报