機
器
人
什麼是 for?
在上一個章節裡,我們瞭解了迴圈的概念。迴圈主要分成兩個種類,一個是 for
,另一個是 while
。當然,還有不同種類的迴圈,但在此我們先介紹 for
迴圈。
這個章節的重點,在於帶領讀者理解物件導向的概念,而非介紹單一個程式語法。此章節的程式語法和 JavaScript 等程式語言相近,但並非任何真實程式語言。請專注於章節中的概念部分,而非語法部分。
開始 - 結束 - 遞增
for
迴圈的長相就跟之前學過的 if
很像:
if(condition){
do_something();
}
for(){
do_something();
}
除了功能上的差別之外, for
與 if
最大的差別在於,它們括號 ()
內放的東西很不一樣。在 for
的括號裡 ()
,放的是一些告訴電腦要重複幾次迴圈的指令。讓我們先用 for
迴圈印出「 hello 」十次:
for(from 1 to 10){
print("hello");
}
在這個 for 迴圈的括號裡,我們告訴電腦要從數字 1 跑到數字 10,也就是總共跑 10 次的意思。當然,你也可以改變寫法:
for(from 2 to 11){
print("hello")
}
這樣一樣會印出十次,因為 2 到 11 共有 10 個數字。
括號裡的變數
現在讓我們練習一個比較難的題目:從數字 1 印到數字 30。
for(from 1 to 30 with i){
print(i);
}
雖然看起來有點小複雜,但是仔細看, from 1 to 30
好像跟剛才的例子有點像:從 1 到 30 共 30 個數字,所以這個迴圈會重複 30 次。那麼, with i
又是什麼意思?
其實, with i
就是叫電腦建立一個變數叫做 i
。當迴圈執行第 1 次時,i = 1;當迴圈執行第 2 次時,i = 2;當迴圈執行第 30 次時,i = 30;依此類推。因此,迴圈第 1 圈時,print( i )
會印出 1;迴圈第 2 圈時,print(i)
會印出 2;就這樣一路印到 30。
長得不一樣的 for
上面的範例程式碼裡, for
的是為了讓大家好懂一點才長那樣的。在大多數的程式語言中, for
的長相比較類似於:
for(i = 1; i <= 10; i += 1){
print(i);
}
啥?這又是什麼?這個迴圈一樣會重複 10 次。其中,i = 1
就相當於剛才的 with i
。而 i = 1; i <= 10; i += 1
整句話的意思,就是讓電腦建立一個變數「i」,並將其值設為 1 ;接著每次迴圈時 i 的值都增加 1;並且重複這個迴圈直到「i <= 10」不成立為止。
現在你可能感到一頭霧水,帶其實只要把這段程式拿去與前面的程式多比較幾次,你就會發現它們的概念是相同的。
真正的程式語言…
這個課程的重點不在教導大家一個特定的程式語言,而是將這些基本概念介紹給大家。讓我們看看 for 迴圈在 JavaScript 裡是如何作用的:
loop 迴圈
repeat 重複
initial 初始的
initialize 初始化
condition 條件
increment 加
odd number 奇數
reverse 顛倒
想想看
影片中迴圈的起始值是什麼?迴圈的終點是什麼?而他是如何把迴圈倒過來的?