JavaScript 小學 — if else switch 判斷式

Jordan Tseng
JordanTTCDesign
Published in
5 min readDec 1, 2020

判斷式,流程控制的條件語法,利用布林值的 truefalse 去判斷只要達到特定條件就會執行某段程式碼。這在寫程式中非常常用到唷~要記得~

判斷式 if

他的結構是 if 後面接著 () 裡面放這個行為的判斷條件,如果條件達成就可以去完成 {} 中的事情:

if(判斷條件){...如果條件成立,就會執行這裡的程式碼;}

回想一下以前小時候常常會造句說:如果…就…,如果長大賺大錢,就要買豪宅🤟🤟🤟???

var myMoney=1000;
if (myMoney>=1000000){
console.log('恭喜你買到台北市的廁所了!')
}

上面可以看到這個判斷式是當我的存款達到100萬,我就可以買廁所。但我現在只有1000元…所以我連說話的權力都沒有…(沒錢沒人權👼🙇🙇🙇)

else if

來看看 else if,這個就是要補強前面的 if 啊,可以新增新的判斷式:

if(條件一){
如果條件一成立,就執行選項A;
} else if (條件二){
如果條件一不成立但條件成立,就執行選項B;
} else{
如果條件一跟二都不成立,就執行選項C;
}

那延續上面的例子來看看我究竟能用1000元買什麼💁?

var myMoney=1000;
if (myMoney>=1000000){
console.log('恭喜你買到台北市的廁所了!')
} else if (myMoney>=100000){
console.log('恭喜你買到頂規macbook pro 16寸拉!')
} else if (myMony>=10000){
console.log('恭喜你買到ipad 2018,還不是最新款式的')
} else {
console.log('可以吃碗魯肉飯')
}

這個 else if 的條件可以無限寫下去,你看到上面 else if 條件我全部都達不到,最後程式之神也會可憐你,給你一個 else ,一定可以達成~再怎樣也可以回家吃碗魯肉飯😅~

switch

switch 任天堂最新遊戲機,我超愛❤️❤️❤️,不是好嗎?

也是拿來「設定條件→比較→執行」 的拉,跟 if...else 很像,但 switch 會先將所有條件 case 先跑過一遍,找到符合的條件才會執行程式碼,因此網頁渲染的效能比較好。所以通常是有很多條件的時候才需要用到 switch

我們繼續延伸剛剛實例,這次我存到一萬了🤩:

var myMoney=10000;
if(myMoney==10000000){
console.log('恭喜你買到台北市的廁所了!')
}
else if(myMoney==10000){
console.log('恭喜你買到頂規macbook pro 16寸拉!')
}
else if(myMoney==50000){
console.log('恭喜你買到高階單眼拉!')
}
else if(myMoney==10000){
console.log('恭喜你買到ipad 2018,還不是最新款式的')
}
else{
console.log('可以吃碗魯肉飯');
}

上面結果是我買到 ipad 2018,但是為了買東西,總共跑了四次的比較運算,那我們用 switch 就可以,只要做一次就好:

var myMoney=10000;
switch(myMoney){
case 10000000:
console.log('恭喜你買到台北市的廁所了!');
break;
case 100000:
console.log('恭喜你買到頂規macbook pro 16寸拉!')
break;
case 50000:
onsole.log('恭喜你買到高階單眼拉!')
break;
case 10000:
console.log('恭喜你買到ipad 2018,還不是最新款式的')
break;
default:
console.log('可以吃碗魯肉飯');
}

直接把 switch 後面 () 參數拿去一路跟 case 後面的值去比較,如果相等才會執行動作,但你看到上面是不是有個 break; ,因為如果沒加上 break; 就會執行完全部的後面的程式碼,加上是用來跳出程序的!!

另外 defaultelse 一樣就是如果上面全部條件都沒達成的話,就會執行,也是可以把 default 夾在最前面,但是要記得也要加上 break; 喔~

switch 有好處,也有壞處,就是不能像 if else 那麼的隨意,因為 if else 有一個 () 可以去做運算,但 switch 只能以值去做相等的評判,所以可以自己再斟酌使用。

當然如果是要去比較字串的話那就用 switch 拉👍👍👍~

var myName = 'Jordan';
switch(myName){
case 'Zoe':
console.log('Zoe 在嗎?')
break;
case 'Yui':
console.log('Yui 在嗎?')
break;
case 'Jordan':
console.log('Jordan 在嗎?')
break;
}

BTW現在 google switch 根本全部都是遊戲機~

--

--