最新的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语句参考