人类发明制造了许多机器来代替自己做那些重复繁琐的劳动。
在编程中,循环就是做这些重复的工作的。
Scratch 循环的例子
假设有一个小机器人,它的工作很简单,就是过一会儿就说一句,我已经工作了多少秒:
其中,“说”里面的代码块有点复杂,那是因为需要把说话的内容:"我已经工作了"、工作的时间(单位是秒,还要四舍五入取整,要怎么和小朋友解释四舍五入呢……)、“秒!”这三部分逐步连接起来成为一句完整的话。
我们不让它停下的话,小机器人会一直工作下去,这样的循环就是无限循环。
通常循环都不是无限的,而是条件限制的:
教练要这个球员练习5次挥杆,循环中的4组“下一个造型”和“等待0.25秒”代码块用来显示挥杆的动画,其实这也是重复,可以放到循环里,循环可以嵌套着循环,进一步简化:
Python 循环的例子
我们来用Python计算斐波那契数列(Fibonacci sequence)的前100项,别担心,搜索一下吧,在小学二年级数学的找规律题中就会遇到它:
count = 1
current = 1
print (count, current)
p2 = 0
p1 = current
while count < 100:
count += 1
current = p2 + p1
print(count, current)
p2 = p1
p1 = current
count是个计数器,帮我们数着,第一项、第二项、第三项……直到第100项。
current是我们的数列中现在正在计算着的这一项的值,它等于之前两项的和,而之前的两项,我们分别放到p2、p1里。
可以把上面的代码保存为一个文件,比如Fibonacci.py,然后运行它,具体的操作去搜索或者看书吧。
运行的结果像这样:
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
...
100 354224848179261915075
第100项大得有点吓人吧,斐波那契数列也叫兔子数列,模仿兔子的繁殖……
如果人手工计算,会是件骇人的工作,不过对计算机而言就不在话下了。
这次我们不推荐书了,推荐一个小游戏——人力资源机器(Human Resource Machine),其实这个游戏的每一关都是一个编程小挑战哦!