iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 9
0
自我挑戰組

純新手學習 JavaScript系列 第 9

新手學習JavaScript: Day09 - 三元運算子與迴圈

昨天介紹了if..else與switch的條件流程判斷,今天開頭先讓我們來補充一下三元運算子,再來介紹迴圈吧!

三元運算子

三元運算子,又稱「條件運算子」。我們直接來看看它長什麼樣子吧!

(條件)? [數值/運算式(1)]:[數值/運算式(2)];

如果條件為true,此時回傳[數值/運算式(1)];條件為false,則回傳[數值/運算式(2)]。

前篇我們用if..else做判斷會這樣寫:

if(a < 60){
   status = "不及格";
}else{
    status = "及格";
}

使用三元運算子,可以改寫成:

var status = (a < 60) ? "不及格" : "及格";

迴圈

如果你也是新手的話對「迴圈」應該蠻頭疼的。迴圈你可以想像「是用來重複做某件事」。例如,我想要印出5次1,不使用迴圈:

console.log(1);
console.log(1);
console.log(1);
console.log(1);
console.log(1);

這樣寫很多遍同樣的東西看起來有點多餘,那我們來看看怎麼使用迴圈。

while

我們直接使用while 迴圈來寫上面那個範例會變成這樣子:

var i = 0;
//初始值

while (i < 5){ //(i < 5)是條件
    console.log(1);
    i++; // 每一次結束時變動
}

在開始迴圈時,我們會先給一個初始值作為基準,給予條件做判斷,如果滿足條件(為true)的時候會進入大括號{}區塊,執行裡面的程式。

接下來,如果想印出1-5,我們可以改成這樣子:

var i = 1;
//初始值

while (i <= 5){ //(i <= 5)是條件
    console.log(i);
    i++; // 每一次結束時變動
}

for 迴圈

我們來使用for迴圈改寫上面的要印出1-5範例:

var i ;

for (i = 0; i < 5; i++){
    console.log(i);
}

可以發現跟while迴圈,有點不一樣的是,for 迴圈將「初始值」與「每一次結束的變動」都寫在小括號內。

最左邊i=0是初始值,中間的部分是「執行迴圈的條件」,最右邊是「結束時的變動」,但是在每一次執行完大括號{}的程式,才會執行。當執行完後,會再跳到中間的條件做判斷,如果符合則繼續執行迴圈,否則跳出迴圈區塊。

最後,要特別注意!每一次結束的變動很重要。換句話說,要滿足結束條件。除此之外,也要注意條件的設定,不然會進入「無窮迴圈」,無窮迴圈範例:

  1. 條件沒設好
var i ;

for(i = 0; i >= 0; i++){
console.log(i);
}

  1. 沒有設定結束的變動
var i = 1;

while (i <= 10){
console.log(i);
}
//條件一直都成立,無法跳出迴圈

break 與 continue

最後來補充一下break 與 continue 。

  • break: 直接跳離迴圈。
  • continue: 會跳過一次,然後繼續下一次的迴圈。

假設我們想要印出1~10之間不是2的倍數:

var i;

for(i = 1; i <=10; i++){

    if(i % 2 === 0){
    continue;
    }
    
    console.log(i);// 1,3,5,7,9
}

如果把continue 改成break:

var i;

for(i = 1; i <=10; i++){

    if(i % 2 === 0){
    break;
    }
    
    console.log(i);// 1
}

就只會印出1 ,因為第二次迴圈i 是2的時候就符合裡面if的條件然後執行break,直接跳離迴圈。

以上就是基本的迴圈介紹。那我們明天再見啦! 新手學習JavaScript: Day09 - 三元運算子與迴圈
昨天介紹了if..else與switch的條件流程判斷,今天開頭先讓我們來補充一下三元運算子,再來介紹迴圈吧!

三元運算子

三元運算子,又稱「條件運算子」。我們直接來看看它長什麼樣子吧!

(條件)? [數值/運算式(1)]:[數值/運算式(2)];

如果條件為true,此時回傳[數值/運算式(1)];條件為false,則回傳[數值/運算式(2)]。

前篇我們用if..else做判斷會這樣寫:

if(a < 60){
   status = "不及格";
}else{
    status = "及格";
}

使用三元運算子,可以改寫成:

var status = (a < 60) ? "不及格" : "及格";

迴圈

如果你也是新手的話對「迴圈」應該蠻頭疼的。迴圈你可以想像「是用來重複做某件事」。例如,我想要印出5次1,不使用迴圈:

console.log(1);
console.log(1);
console.log(1);
console.log(1);
console.log(1);

這樣寫很多遍同樣的東西看起來有點多餘,那我們來看看怎麼使用迴圈。

while

我們直接使用while 迴圈來寫上面那個範例會變成這樣子:

var i = 0;
//初始值

while (i < 5){ //(i < 5)是條件
    console.log(1);
    i++; // 每一次結束時變動
}

在開始迴圈時,我們會先給一個初始值作為基準,給予條件做判斷,如果滿足條件(為true)的時候會進入大括號{}區塊,執行裡面的程式。

接下來,如果想印出1-5,我們可以改成這樣子:

var i = 1;
//初始值

while (i <= 5){ //(i <= 5)是條件
    console.log(i);
    i++; // 每一次結束時變動
}

for 迴圈

我們來使用for迴圈改寫上面的要印出1-5範例:

var i ;

for (i = 0; i < 5; i++){
    console.log(i);
}

可以發現跟while迴圈,有點不一樣的是,for 迴圈將「初始值」與「每一次結束的變動」都寫在小括號內。

最左邊i=0是初始值,中間的部分是「執行迴圈的條件」,最右邊是「結束時的變動」,但是在每一次執行完大括號{}的程式,才會執行。當執行完後,會再跳到中間的條件做判斷,如果符合則繼續執行迴圈,否則跳出迴圈區塊。

最後,要特別注意!每一次結束的變動很重要。換句話說,要滿足結束條件。除此之外,也要注意條件的設定,不然會進入「無窮迴圈」,無窮迴圈範例:

  1. 條件沒設好
var i ;

for(i = 0; i >= 0; i++){
console.log(i);
}

  1. 沒有設定結束的變動
var i = 1;

while (i <= 10){
console.log(i);
}
//條件一直都成立,無法跳出迴圈

break 與 continue

最後來補充一下break 與 continue 。

  • break: 直接跳離迴圈。
  • continue: 會跳過一次,然後繼續下一次的迴圈。

假設我們想要印出1~10之間不是2的倍數:

var i;

for(i = 1; i <=10; i++){

    if(i % 2 === 0){
    continue;
    }
    
    console.log(i);// 1,3,5,7,9
}

如果把continue 改成break:

var i;

for(i = 1; i <=10; i++){

    if(i % 2 === 0){
    break;
    }
    
    console.log(i);// 1
}

就只會印出1 ,因為第二次迴圈i 是2的時候就符合裡面if的條件然後執行break,直接跳離迴圈。

以上就是基本的迴圈介紹。那我們明天再見啦!


上一篇
新手學習JavaScript: Day08 - 流程判斷
下一篇
新手學習JavaScript: Day10 - 物件(Object)
系列文
純新手學習 JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言