循环:把"重复三次"写得又短又聪明
今天学会
- 明白重复的命令可以用"循环"打包
- 会用"重复 N 次"把一长排相同的卡片缩短
- 数清楚循环里包住了哪几张卡、要重复几遍
上一课你学会了用命令卡指挥机器人走路。今天有个新麻烦:要让机器人往前走十步,你难道要写十张”前进”卡吗?手都写酸了。别急,程序员有个偷懒的好办法,叫循环。学会它,一长排卡片能缩成一小段。
要准备什么
- 上一课的指令卡(前进、左转、右转),没有就重新做几张
- 再做一种新卡片:循环卡,上面写”重复 ⬜ 次”,中间空一格好填数字
- 一支笔(用来在循环卡上填次数)
- 一个当机器人的爸爸或妈妈
第 1 步:先体会一下”写重复”有多累
我们让机器人往前走五步。按上一课的老办法,你得摆出这么一排:
前进 → 前进 → 前进 → 前进 → 前进
五张一模一样的卡。现在假如要走二十步呢?你得摆二十张!不但累,还容易数错——万一手一抖多摆了一张,机器人就多走一步走过头了。
你发现没有:这些卡全都一样,就是”前进”在不停重复。凡是重复的东西,程序里都有办法打包。
第 2 步:用”重复 N 次”把它们打包
现在拿出循环卡。既然是五个”前进”,我们就在循环卡上填 5,然后只在它后面放一张前进卡:
重复 5 次〔 前进 〕
读法是这样的:机器人看到”重复 5 次”,就把后面括住的”前进”连做 5 遍。做一遍是走一步,做五遍就是走五步——和摆五张卡的效果一模一样!
可是你数数看,原来要五张卡,现在只用了两张。这就是循环的魔法:重复几次不用写几遍,只要告诉机器人”重复几次”,再给它要重复的那一个动作就行。
第 3 步:循环里可以装不止一个动作
循环不只能包一个动作,还能把好几个动作一起打包重复。
比如你想让机器人走一步、右转,这样一遍一遍地绕出一个正方形。走正方形要重复四次”走一步、右转”,老办法要摆八张卡。用循环呢:
重复 4 次〔 前进 → 右转 〕
机器人会把括号里的”前进、右转”当成一个小组合,整组重复四遍。走、转、走、转……四遍下来,正好绕回原地,走出一个方方正正的正方形!
这里要看清楚一件事:循环包住了哪几张卡很关键。上面这个循环包住的是”前进”和”右转”两张,所以每一遍都是这两个动作。包错了,机器人就转错了。
第 4 步:数一数,别让机器人多转一圈
用循环时,最容易错的地方就是次数填错。填多了机器人多做几遍,填少了没做够。
玩个检查游戏:你摆好一个循环,比如”重复 3 次〔前进〕“,先别让机器人动,你自己先算——3 次前进,应该走几步?(走 3 步。)然后再让机器人真走一遍,数数它是不是正好走了 3 步。
算的和走的对上了,说明你的循环写对了。这个”先自己算一遍、再让机器人验证”的习惯,程序员天天在用。
玩出新花样
- 走出各种形状:正方形是”重复 4 次〔前进、右转〕“。那三角形怎么走?试试改次数和转弯,看能不能绕回起点。
- 循环套循环:先”重复 2 次〔前进〕“走两步,再”重复 3 次〔右转〕“原地转,把几个循环接起来指挥机器人。
- 比比谁的短:给一条长长的路线,你用循环写,爸爸妈妈用老办法一张张摆,看谁的卡片少、谁摆得快。