人類發(fā)明制造了許多機(jī)器來代替自己做那些重復(fù)繁瑣的勞動(dòng)沦零。
在編程中,循環(huán)就是做這些重復(fù)的工作的。
Scratch 循環(huán)的例子
假設(shè)有一個(gè)小機(jī)器人沽翔,它的工作很簡單,就是過一會(huì)兒就說一句窿凤,我已經(jīng)工作了多少秒:
其中仅偎,“說”里面的代碼塊有點(diǎn)復(fù)雜,那是因?yàn)樾枰颜f話的內(nèi)容:"我已經(jīng)工作了"雳殊、工作的時(shí)間(單位是秒橘沥,還要四舍五入取整,要怎么和小朋友解釋四舍五入呢……)夯秃、“秒座咆!”這三部分逐步連接起來成為一句完整的話。
我們不讓它停下的話仓洼,小機(jī)器人會(huì)一直工作下去介陶,這樣的循環(huán)就是無限循環(huán)。
通常循環(huán)都不是無限的色建,而是條件限制的:
教練要這個(gè)球員練習(xí)5次揮桿哺呜,循環(huán)中的4組“下一個(gè)造型”和“等待0.25秒”代碼塊用來顯示揮桿的動(dòng)畫,其實(shí)這也是重復(fù)箕戳,可以放到循環(huán)里某残,循環(huán)可以嵌套著循環(huán),進(jìn)一步簡化:
Python 循環(huán)的例子
我們來用Python計(jì)算斐波那契數(shù)列(Fibonacci sequence)的前100項(xiàng)陵吸,別擔(dān)心玻墅,搜索一下吧,在小學(xué)二年級數(shù)學(xué)的找規(guī)律題中就會(huì)遇到它:
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是個(gè)計(jì)數(shù)器壮虫,幫我們數(shù)著澳厢,第一項(xiàng)、第二項(xiàng)、第三項(xiàng)……直到第100項(xiàng)赏酥。
current是我們的數(shù)列中現(xiàn)在正在計(jì)算著的這一項(xiàng)的值喳整,它等于之前兩項(xiàng)的和,而之前的兩項(xiàng)裸扶,我們分別放到p2框都、p1里。
可以把上面的代碼保存為一個(gè)文件呵晨,比如Fibonacci.py魏保,然后運(yùn)行它,具體的操作去搜索或者看書吧摸屠。
運(yùn)行的結(jié)果像這樣:
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
...
100 354224848179261915075
第100項(xiàng)大得有點(diǎn)嚇人吧谓罗,斐波那契數(shù)列也叫兔子數(shù)列,模仿兔子的繁殖……
如果人手工計(jì)算季二,會(huì)是件駭人的工作檩咱,不過對計(jì)算機(jī)而言就不在話下了。
這次我們不推薦書了胯舷,推薦一個(gè)小游戲——人力資源機(jī)器(Human Resource Machine)刻蚯,其實(shí)這個(gè)游戲的每一關(guān)都是一個(gè)編程小挑戰(zhàn)哦!