學習目標:
1. 如何撰寫迴圈語句,使程式能執行指定次數? (使用LOOP指令)
2. 如何追踪變量數值的變化?
參考視頻: https://youtu.be/7k-dMxQQgaU
參考以下的單迴圈的使用,以下程式的功能是輸出指定數目(以下是4)的*。
使用的指令是for。for loop 的語法是:
for (起始值變量; 是否繼續執行的判斷; 迴圈執行一次後i值的變化){
指令敍述;
}
說明
|
行 |
|
|
4 |
i的作用是用來貯存迴圈執行的起始值及隨後的變化。(留意,i並不是迴圈執行的次數。 |
|
6 |
這for loop的意思是開始時變是1(因為於第5行把i設定成1),如等於或少於3的話(i<=3),便執行for 內被{ }著的指令,執行一次後i的值會加1(i=i+1) |
|
7 |
如符合以上第6行的迴圈判斷的話,便執行這行指令,輸出一個*。 |
如何追踪變量數值的變化?
- 如能準確列出程式執行時不同的行號及變量(i)值的變化,便是真正明白以上程式的運作,試試看(答案在下方) (由第3行開始)
|
行 |
i值 |
輸出 |
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
答案:
|
行 |
i值 |
輸出 |
說明 |
|
3 |
-- |
|
這是宣告i這個變量(variable)而已,並未賦予任何指定的數值。 |
|
4 |
1 |
|
把1給予i |
|
5 |
1 |
|
這是迴圈的第一句。 |
|
6 |
1 |
* |
由於i少於3,所以會執行這句,輸出一粒 *。 |
|
7 |
2 |
* |
執行完迴圈內所有指令後,i的值會加1。 |
|
5 |
2 |
* |
先跳回迴圈第一句,判斷是否再執行迴圈內指令(即第6行) |
|
6 |
2 |
** |
由於i少於3,所以仍會執行這句,又輸出一粒 *。由於這句指令內並沒有輸出換行字元(即\n),第二粒 *會出現於第一粒*左方。 |
|
7 |
3 |
** |
執行完迴圈內所有指令後,i的值會加1,變成3。 |
|
5 |
3 |
** |
仍先跳回迴圈第一句,判斷是否再執行迴圈內指令(即第6行) |
|
6 |
3 |
*** |
由於i等於3,仍符合所需條件,因此會執行這句,又輸出一粒 *。由於這句指令內並沒有輸出換行字元(即\n),第三粒 *會出現於第二粒*左方。 |
|
7 |
4 |
*** |
執行完迴圈內所有指令後,i的值會加1,變成4。 |
|
5 |
4 |
*** |
留意,即使i的值已是4,會仍會跳回迴圈開始時這句,這句才是用以判斷需否繼續下去的語句。 |
|
8 |
4 |
*** |
由於i的值大於3,不符合for內的判斷準則,因此不會執行6及7,直至跳出迴圈,到第8行。 |
討論問題:
1. 是甚麼決定迴圈的執行次數?