少儿计算思维养成记:六个孩子的编程学习笔记
上QQ阅读APP看书,第一时间看更新

一、知识点

(一)什么是循环?

现在我来介绍循环。循环就是把一个或者几个动作重复做很多次。比如我们想让小猫排成一行,每隔80步留个影(见图4-1)。

057-1

图4-1 小猫每隔80步留个影(左)、不用循环的脚本(中)、用到循环的脚本(右)

这个功能可以这样实现:留几个影就写几遍(见图4-1中间部分)。不过这样写太麻烦了。这里小猫只移动了4次,留了4个影子,用了8个积木块;要是走上10 000步,那得用多少积木块啊?这个程序编写起来可要等到猴年马月啊!

这时“重复执行”积木就能帮上忙了,我们用“重复执行4次”积木块,能够达到同样的效果(见图4-1中右侧图)。

在程序里的“重复执行”指的就是循环。你看这样简单吧!

(二)“重复执行”积木的种类

重复执行有三种类型:

第一种就是“重复执行”,不指定循环次数,因此会永远执行下去(也可以加上一些语句,以终止循环)。比如小猫将造型1换成造型2,走几步,然后再换回造型1走几步。这样不断重复,那么播放这段代码,就会看到一个小猫走路的动画(见图4-2)。

第二种是“重复执行……次”,事先指定重复次数。这种执行方式我们一开始就用过了,这里就不多介绍了。

第三种是“重复执行直到……”,也就是循环执行,直到满足事先指定的结束条件为止。有时候我们事先无法知道到底重复了多少次,这时候就需要用“重复执行直到……”类型了。比如我们可以让小猫不断地走,但是如果你用鼠标挡住它,它就停下了(见图4-2)。老师提醒我们,如果结束条件一开始就满足,那么循环体里的动作一次都不会执行。

058-1

图4-2 实现小猫走路的程序:永不终止版本(左)和碰到鼠标指针就终止的版本(右)

讲到这里,如果你很细心的话,会发现“重复执行……次”和“重复执行直到……”两个积木块的空格有点不一样:一个是圆形的,一个是六边形的。原来圆形空和六边形空处都要填一个参数。不过圆形空里面只能填写一个整数,叫“数字类型参数”;六边形空里要填一个条件,叫“布尔类型参数”。

“数字类型参数”就是指它的值是数字,这很好理解。“布尔类型参数”也就是真和假,判断符不符合条件。那为什么叫“布尔”,不叫“真假”或“T/F(True/False)”呢?因为这是一个叫布尔的人提出的,所以就命名为“布尔类型参数”。

(三)循环的嵌套

下面我们来讲循环嵌套。循环嵌套就是循环里面还有循环。比如图4-3是一个大循环套中循环,中循环又套小循环。你猜小猫会叫几次?

059-1

图4-3 循环的嵌套

有人会说:“这很简单,10+10+10=30(次)。”哦!这当然不对了!想想看,你走10步,让小猫在你每走一步后就对着你叫10声,那小猫共叫了多少声?

这道简单的数学题你肯定会做:10×10=100(声)啊!

循环的嵌套也是一样的道理。上面的那个循环嵌套了3次,那小猫就要重复叫10×10×10=1000(声)?

(四)写循环的小秘诀

写循环时要自问3个问题:

第1问:循环开始时变量有初始值吗?

第2问:循环结束时变量有终止值吗?

第3问:循环里,变量的值是怎样变化的?

只要在心里时刻去想这3个问题,这样做循环就不容易出错了。