--- title: switch tags: switch --- switch === `switch` 會比對一個`表達式`裡頭的值是否符合`case`條件,然後執行跟這個條件相關的`陳述式`, 以及此一符合條件以外,剩下**其他條件**裡的`陳述式`。 <br> - **表達式**的比較運算子會是`===`(嚴格比對),而不是`==`(寬鬆比對)。 - `switch`會根據**表達式回傳的值**,去判斷**符合哪個case條件**,去執行底下的內容。 - `case`條件內容的**最後沒有加上`break`**,則該`case`執行完內容後,會繼續執行下面其他的`case`。 - 表達式回傳的值,如果都**沒有符合**的`case`,則會去執行`default`條件的內容。 ```javascript= switch (表達式){ case value1: break; case value1: break; ... case valueN: break; default: } ``` <br> #### 範例:輸入月份,回傳該月份有幾天 - 利用`switch`的特性,`case`條件若都沒有加上`break`,就會繼續掃描到`switch`結束,或是掃描到有加`break`的`case`條件後結束。 - 函式`howManydays`代入2,`switch`對應`case 2`並賦予值`28`給`days`,接著`switch`中斷return days的值。 - 函式`howManydays`代入4, 6, 9, 11,由於case4, 6, 9都沒有加上break, 會繼續掃描到case11並賦予值30給days,接著switch中斷return days的值。 - 函式`howManydays`代入其他月份,因為`switch`沒有這些`case`條件,直接跳到default並賦予值31給days。 ```javascript= function howManydays(month){ var days; switch (month){ case 2: days = 28; break; case 4: case 6: case 9: case 11: days = 30; break; default: days = 31; } return days; }; ``` <br> #### 延伸閱讀 - [switch(mdn web docs)](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Statements/switch)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up