codecamp

JavaScript switch-case语句

switch case

你可以像前面章节那样用多个 if…else if 语句来执行多个代码块。然而,这不是最佳解决方案,尤其是当所有代码块的执行依赖于单个变量值时。

从 JavaScript 1.2 开始,你可以使用一个 switch 语句来处理上面提到的问题,而且这样做的效率远高于重复使用if…else if 语句。

语法

switch语句的基本语法是给定一个判断表达式以及若干不同语句,根据表达式的值来执行这些语句。编译器检查每个case是否与表达式的值相匹配。如果没有与值相匹配的,则执行缺省条件。

switch (expression){
    case condition 1: statement(s) break;
    case condition 2: statement(s) break;
    ...
    case condition n: statement(s) break;
    default: statement(s)
}  

break语句用于在特殊case的最后终止程序。如果省略掉break,编译器将继续执行下面每个case里的语句。

我们将在循环控制那一章节里继续讨论break语句。

例子

下面这个例子演示了一个基本的while循环:

var grade='A';
document.write("Entering switch block<br />");
switch (grade){
    case 'A': document.write("Good job<br />"); break;
    case 'B': document.write("Pretty good<br />"); break;
    case 'C': document.write("Passed<br />"); break;
    case 'D': document.write("Not so good<br />"); break;
    case 'F': document.write("Failed<br />"); break;
    default:  document.write("Unknown grade<br />")
}
document.write("Exiting switch block");

程序运行结果如下:

Entering switch block
Good job
Exiting switch block

例子

看一下如果没用break语句的情况:

var grade='A';
document.write("Entering switch block<br />");
switch (grade){
    case 'A': document.write("Good job<br />");
    case 'B': document.write("Pretty good<br />");
    case 'C': document.write("Passed<br />");
    case 'D': document.write("Not so good<br />");
    case 'F': document.write("Failed<br />");
    default:  document.write("Unknown grade<br />")
}
document.write("Exiting switch block");

程序运行结果如下:

Entering switch block

Good job

Pretty good

Passed

Not so good

Failed

Unknown grade

Exiting switch block


JavaScript if-else语句
JavaScript While 循环
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }