和小家伙一起學編程 002 循環

人類發明制造了許多機器來代替自己做那些重復繁瑣的勞動。

在編程中,循環就是做這些重復的工作的。

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

這次我們不推薦書了,推薦一個小游戲——人力資源機器(Human Resource Machine),其實這個游戲的每一關都是一個編程小挑戰哦!

節點目錄

和小家伙一起學編程 000 出發

和小家伙一起學編程 001 條件

和小家伙一起學編程 002 循環

和小家伙一起學編程 003 隨機

和小家伙一起學編程 004 編碼

和小家伙一起學編程 005 對象

和小家伙一起學編程 006 函數

和小家伙一起學編程 007 算法

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容