Loop: for 迴圈
你如果在 Sublime Text 打上 for 應該就會出現三個自動完成選項(就是選擇其一按 Enter 就會自動完成後
續設定好的文字),前面兩個是 for 迴圈常見的兩種形式,第三個 floor 是來亂的不要理他。
for (var i = Things.length - 1; i >= 0; i--) {
Things[i]
}
for (var i = 0; i < Things.length; i++) {
Things[i]
}
這個 Things 想指的是什麼呢?它指的是陣列 (Array) 或字串 (String),這兩者都有項目 [] 的功能。
[] 是中括號,它代表著此物件的第幾個項目,若該物件有 n 個項目,則範圍是從 0 開始一直到 n-1。如果是字串,則是第 0 到第 n-1 字元 (Characters,註1) 為何。
var quote = "Happy New Year!";
console.log(quote[0]);
以字串舉例,其 quote 的第 0 項就是 H。
回到剛剛自動完成的 for 迴圈程式碼,for 與 while 不同,有三個區塊。
for (定義 i 的初始值; 判斷式:當 i 到多少迴圈要結束; i 每執行一次要有什麼變化){
}
通常在使用 for 迴圈的時候,都是設定為很明顯看得出來會執行幾次的模樣,也因此經常與有項目可以操控的陣列跟字串一同使用。(註2)
所以在選擇使用 for 或是 while 的時候,for 通常用來作為明顯有限次數 or 跟項目相關的迴圈,while 則是其他跟次數相較無關的迴圈。(註3)
var quote = "Happy New Year!";
for (var i = 0; i < quote.length; i++) {
console.log(quote[i]);
}
至於這個 i++ 跟 i-- 是什麼呢?i++ 等同於 i = i + 1;i-- 等同於 i = i - 1。
i = i - 1?想想變數的時候所說明的,只有一個等號時,是賦予值的意思喔!也就是讓 i 變成 i - 1 的值的意思!
註解:
- 字元,就是指一個字,不是一句話,是一個字。
- for 的三個區塊挺有趣的,有時間可以把他們都挖空,然後分別填入 0 試試看會發生什麼事。
- 當然你要 for 當 while、while 當 for 在用也是可以的,只是其他人閱讀的時候就會覺得莫名其妙就是。