iT邦幫忙

2021 iThome 鐵人賽

DAY 11
1
自我挑戰組

JavaScript老學徒筆記—馬步篇系列 第 12

【Day11】忙得團團轉的迴圈

  • 分享至 

  • xImage
  •  


迴圈指的是「重複做某件事,次數隨著數值『遞增」或『遞減』,當數值滿足所設的條件,則退出迴圈」。

所以當我們要「重複做某件事」的時候,第一個進入腦海中的方法應該就是迴圈。例如console.log(1)到(9)、求某數值範圍的平方或是九九乘法表之類的。

最常見的迴圈有 for 與 while 兩種。

for迴圈

for迴圈的語法如下:

for(var i = 0; i < n; i++ ){
	/執行某件事
}

var i = 0; 是在設定初始值,變數i的有效範圍與for迴圈相同。

i < n; 則是在為for迴圈設定條件,變數i的有效範圍跟for迴圈的有效範圍是相同的,一旦變數i滿足這個條件,迴圈就會結束。如果還為滿足就去執行{}內的程式敘述。

i++; 則在迴圈跑完一次時遞增,直到迴圈結束。

讓我們來試試看99乘法表該如何利用迴圈來執行:

for (var = 1; i <= 9; i++) {
	for (var j = 1; j <= 9; j++){
		console.log( i * j);
	}
}

while迴圈

while迴圈通常長成這個樣子:

var i = 0;
while (i < 10){
	/執行某個程式敘述
	i++;
}

var i = 0; 設定初始值。

(i < 10) 這定迴圈執行的條件。

i++;在{}的結尾處讓變數遞增或遞減,直到變數i滿足所設條件,結束迴圈。

讓我們試著用while迴圈來印出1~9的平方:

var i = 1;
while (i <= 9) {
	console.log(i * i);
	i++;
}

while迴圈最常見的疏忽就是忘了在結尾設定變數遞增(i++),結果造成條件一直無法滿足,於是無窮迴圈的一直執行下去。

那何時該用for迴圈?何時該用while迴圈呢?

在《0陷阱!0誤解!8天重新認識JavaS》一書中有提到:

  • for迴圈的使用情境,大多是用在迴圈執行次數「明確」的狀態。
  • 而while迴圈剛好相反,當迴圈執行次數「不確定」的時候更適合。

讓我們利用for迴圈來選出大樂透的號碼,有1到49個號碼,要選出6個不重複號碼:

var lottery = [];
var n;

for (var i = 0; i < 6; i++){
	n = Math.floor(Math.random() * 49) + 1;
	if ( lottery.indexOf(n) === -1){
		lottery.push(n);
	}
}

49個號碼選出6個,執行次數6次,如果使用for迴圈,看起來就一目了然,是適合用for迴圈來執行的情境。

範例實作


上一篇
【Day10】「如果肚子餓了,就吃香蕉」--流程判斷邏輯
下一篇
【Day12】能力封裝--函式
系列文
JavaScript老學徒筆記—馬步篇35
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言