iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
Modern Web

從零開始的JS學習之路系列 第 9

[Day09] while、for 迴圈

tags: 鐵人賽

如果要重複做一件事情,就要用到迴圈這個語法。
還記得當初剛接觸到 0.1+0.2 不等於 0.3 時覺得疑惑,用 console.log 把 0.1*1、0.1*2、...、0.1*10 都印出來看結果,於是寫了下面這段,

後來讀到 JavaScript 迴圈才知道該如何改寫。

while 迴圈

我用 while 來理解迴圈的執行流程
假設題目是:要各別印出數字 1~10,
那我第一步可以先 var 一個 a 變數等於 1,第二,要印到 10 所以條件設 <=10,然後結束時 a++(a = a + 1),再回到執行條件重複執行,直到執行條件不 <10 停止。

var a = 1; // 這是初始值
while ( a <= 10 ) { // 這是執行條件
  console.log(a); // 印出結果
  a++; // 結束時變動
}

while 照順序排下來,印出想要的結果

for 迴圈

然後再把剛剛的題目改成 for 迴圈的寫法,for 迴圈一定要有三個條件,不寫可以留空,但一定要加分號,不然會報錯。

for (var a = 1; a <= 10; a++) {
  console.log(a);
}

// 在外面宣告括號裡要留分號,但一般來說不會有人這樣寫
var a = 1;
for (;a <= 10; a++) {
  console.log(a);
}

看完這兩個寫法可以來改寫我原本的測試啦~
題目:印出 0.1*1、0.1*2、...、0.1*10 的結果
分別用 while、for 寫法

// while 迴圈寫法
var a = 1;
while (a<=10) {
  console.log(a*.1)
  a++;
}
// for 迴圈寫法
for (var a = 1; a<=10; a++) {
  console.log(a*.1);
}
// 結果相同
0.1
0.2
0.30000000000000004
0.4
0.5
0.6000000000000001
0.7000000000000001
0.8
0.9
1

何時該選擇用 for 或 while

明確知道迴圈執行次數使用 for,不確定時使用 while。
for 包含初始值、條件、執行後的改變,可以清楚的知道執行次數,而 while 只包含條件。

break 與 continue 的用途

假設今天要取 1~10 的偶數,那我們就可以利用 continue 的特性,來避開基數,練習如下:

for (var a = 1; a<=10; a++) {
  if ( a % 2 !== 0) {
    continue;
  }
  console.log(a);
}

而 break 目前只測試到停止,還在找適當的範例,晚點再更新補上。

跳出無限迴圈的辦法

在寫迴圈的時候,最怕遇到跳不出迴圈的狀況,無限迴圈一直跑下去造成當機,所以條件設定的邏輯很重要,若不幸遇到停不下來的狀況,在瀏覽器的 devtool 下可以按重新整理,如果是 node 環境可以按 control+C 來停止。


上一篇
[Day08] 流程判斷:if else 與 switch
下一篇
[Day10] 迴圈練習
系列文
從零開始的JS學習之路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
南國安迪
iT邦新手 3 級 ‧ 2021-09-24 21:53:13

我以前迴圈條件常常忘記寫QQ

1
wendy
iT邦新手 2 級 ‧ 2021-09-24 21:56:24

支持你一下

/images/emoticon/emoticon10.gif

1
Chiahsuan
iT邦新手 4 級 ‧ 2021-09-24 22:20:23

之後也可以比較看看while和do...while的差別喔~/images/emoticon/emoticon12.gif

我要留言

立即登入留言