最新的Web開發教程
 

JavaScript switch語句

<JavaScript語句參考

執行的基於用戶輸入的代碼塊:

var text;
var fruits = document.getElementById("myInput").value;

switch(fruits) {
    case "Banana":
        text = "Banana is good!";
        break;
    case "Orange":
        text = "I am not a fan of orange.";
        break;
    case "Apple":
        text = "How you like them apples?";
        break;
    default:
        text = "I have never heard of that fruit...";
}

文本的結果可能是:

How you like them apples?
試一試»

更多"Try it Yourself"下面的例子。


定義和用法

switch語句執行取決於不同情況的代碼塊。

switch語句是JavaScript的一個部分"Conditional"語句,用於執行基於不同條件下不同的動作。 使用開關來選擇要執行的代碼很多塊之一。 這是一個長的完美解決方案,嵌套的if / else語句。

開關語句計算的表達式。 表達式的值然後與結構中每種情況下的值進行比較。 如果存在匹配,則執行的代碼相關聯的塊。

switch語句通常與斷裂或一個默認的關鍵字一起使用(or both) 。 這些都是可選的:

關鍵字break爆發開關塊。 這將停止的代碼多個執行和/或塊內的情況下測試的執行。 如果省略了突破,在switch語句中的下一個代碼塊被執行。

默認關鍵字指定一些代碼來運行,如果沒有匹配的情況下。 只能有一個開關一個默認的關鍵字。 雖然這是可選的,但是建議您使用它,因為它需要的意外情況下照顧。


瀏覽器支持

聲明
switch

句法

switch( expression ) {
    case n :
        code block
        break;
    case n :
        code block
        break;
    default:
        default code block
}

參數值

參數 描述
expression 需要。 指定要求值的表達式。 表達被評估一次。 表達式的值與在該結構中每一種情況下的標籤的值進行比較。 如果存在匹配,則執行的代碼相關聯的塊

技術細節

JavaScript的版本: 1.2

例子

更多示例

使用今天的工作日數來計算星期名稱(星期日= 0,星期一= 1,星期二= 2,...):

var day;
switch (new Date().getDay()) {
    case 0:
        day = "Sunday";
        break;
    case 1:
        day = "Monday";
        break;
    case 2:
        day = "Tuesday";
        break;
    case 3:
        day = "Wednesday";
        break;
    case 4:
        day = "Thursday";
        break;
    case 5:
        day = "Friday";
        break;
    case 6:
        day = "Saturday";
        break;
    default:
        day = "Unknown Day";
}

當天的結果將是:

試一試»

如果今天是週六沒有星期天,也沒有寫一個默認的消息:

var text;
switch (new Date().getDay()) {
    case 6:
        text = "Today is Saturday";
        break;
    case 0:
        text = "Today is Sunday";
        break;
    default:
        text = "Looking forward to the Weekend";
}

文本的結果將是:

試一試»

有時你會想不同的情況下使用相同的代碼,或下降,通過對常見的默認。

請注意,在這個例子中,病例共享相同的代碼塊,並且默認情況下並不一定要在一個開關塊(但是最後的情況下,如果默認是沒有在交換機塊中的最後一種情況,記得要結束它休息後)。

var text;
switch (new Date().getDay()) {
    case 1:
    case 2:
    case 3:
    default:
        text = "Looking forward to the Weekend";
        break;
    case 4:
    case 5:
       text = "Soon it is Weekend";
        break;
    case 0:
    case 6:
       text = "It is Weekend";
}
試一試»

使用switch語句基於用戶輸入來執行的代碼塊,從一個提示框:

var text;
var favDrink = prompt("What's your favorite cocktail drink?");
switch(favDrink) {
    case "Martini":
        text = "Excellent choice! Martini is good for your soul.";
        break;
    case "Daiquiri":
        text = "Daiquiri is my favorite too!";
        break;
    case "Cosmopolitan":
        text = "Really? Are you sure the Cosmopolitan is your favorite?";
        break;
    default:
        text = "I have never heard of that one..";
}
試一試»

相關頁面

JavaScript的教程: JavaScript的if ... else語句

JavaScript的教程: JavaScript的switch語句

javascript參考: JavaScript的if / else語句

javascript參考: JavaScript的break語句


<JavaScript語句參考