我的第一堂编程课:孩子和家长都需要的编程思维
上QQ阅读APP看书,第一时间看更新

第4章 程序的结构

4.1 程序的三大基本结构

今天,酷客工程师带小朋友们参观程序工坊。走进大门,首先看到的是一排排整齐的流水线,无数只机器手臂不停地挥动,一个个崭新的零件随即被制造了出来。

“你们发现流水线有什么特点吗?”酷客工程师看向大家。

“流水线是按照一排一排的方式顺序排列的。”

“机械手臂加工完一个零件后,就会将零件传递给下一个位置的机械手臂,而自己则开始加工下一个零件。”

“大家的回答非常好!”酷客工程师不禁竖起大拇指,“那么流水线为什么要设计成这样?这其中又蕴含着什么原理呢?”

其实机器人流水线也是由计算机程序来控制运行的,而控制程序的设计通常都会遵循程序的三大基本结构:顺序、循环和选择。

有了这三大基本结构,我们在编写程序时,就可以用它们组合出任何复杂的程序逻辑,并实现多种多样的功能了。

顺序结构:顺序结构非常简单直观,就是一个指令完成后,继续执行下一个指令的过程。我们可以理解为排好队后一个接一个报数的过程。

如右图所示,程序开始后,酷客工程师先移动10步,然后等待1秒;继续移动,再等待;第三次移动,再等待;第四次移动,再等待,程序结束。

循环结构:在上面的例子中,酷客工程师一共分4次向前移动了40步。为了实现这个效果,我们让工程师角色把“移动(10)步”和“等待(1)秒”这两个命令先后执行了4次,一共使用了9个命令块(包含开始命令)。

同样的功能,如果想让角色向前移动100步,需要多少个命令块呢?

“1个开始命令块,且每向前移动10步需要2个命令块,这样如果移动100步,就是2乘以10再加上1,总共需要21个命令块!”

“这也太长了吧,一个屏幕都放不下呢。”

“有没有办法可以使用更少的命令块来完成上面的任务呢?”让我们来看看下面的程序。

使用“重复执行()次”命令,只要将需要重复执行的命令块包含在其中,并指定需要执行的次数,就可以一次完成多组相同的命令了。这样就完美地解决了需要重复放置很多个命令块,使得程序超长的问题。

选择结构:在程序运行的过程中,我们需要根据不同情况对舞台上的角色进行控制。例如,当角色在行进过程中碰到舞台边缘时,我们可以让角色做出预警:“到达边缘。”

这里,我们使用“如果()那么”命令进行判断,检查条件语句是否成立。

Scratch中的选择结构有以下两种类型:

“如果()那么”:只有当判断条件的结果为“真”(成立)时才执行“那么”后面的命令。

“如果()那么,否则()”:当判断条件为“真”时,执行“那么”后面的命令;当判断条件为“假”时,执行“否则”后面的命令。