YanTianFeng的知识库

Want Coding

Want Reading

文章 89

访问 18326

评论 2

头像

YanTianFeng

发私信

文章 89
访问 18326
评论 2
JAVASCRIPT
返回顶部

Knowledge  JavaScript switch 语句

标签   switch  

  ( 533 )       ( 0 )


前言

switch 语句用于基于不同的条件来执行不同的动作。

switch 语句

使用 switch 语句来选择多个代码块的其中一个来执行, switch 语句的每个 case 称为一个分支。

语法:

switch(n)
{
    case 1:
        执行代码块 1
        break;
    case 2:
        执行代码块 2
        break;
    default:
        n与 case 1 和 case 2 都不相等时执行的代码
}

执行逻辑:程序从上往下执行,当遇到 switch 语句时,先计算表达式 n (通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配(相等),则与该 case 关联的代码块会被执行。

使用 break 来阻止代码自动地向下一个 case 运行(匹配成功时,程序默认会依次下面每个 case 后的代码块,包括最后的 defuat 代码块,这叫 switch 的 贯穿特性)。

代码实例:

//判断今天是星期几。
//需要的注意是,数字和真实星期的对应关系: 
//Sunday=0
//Monday=1
//Tuesday=2
//......

var d=new Date().getDay(); //此句代码会获取星期对应的数字
switch (d) 
{ 
  case 0 : x="今天是星期日"; break; 
  case 1 : x="今天是星期一"; break; 
  case 2 : x="今天是星期二"; break; 
  case 3 : x="今天是星期三"; break; 
  case 4 : x="今天是星期四"; break; 
  case 5 : x="今天是星期五"; break; 
  case 6 : x="今天是星期六"; break; 
}
console.log(x);

每个 case 分支后可以不写代码( js 是允许的)。

break

使用 break 来阻止代码自动地向下一个 case 运行。

break 只可以用在 switch 和循环语句(后面会提到)中。

在实际应用中,在每个 case 分支最后添加 break 语句是一个好习惯;但有时候我们可能会故意不写 break 来达到特殊的业务需求;

//判断今天是不是工作日。
//需要的注意是,数字和真实星期的对应关系: 
//Sunday=0
//Monday=1
//Tuesday=2
//......

var d=new Date().getDay(); //此句代码会获取星期对应的数字
switch (d) 
{ 
  case 1 : 
  case 2 : 
  case 3 : 
  case 4 : 
  case 5 : x="今天是工作日"; break; 
  case 0 : 
  case 6 : x="今天是非工作日(周末)"; break; 
}
console.log(x);

default

使用 default 关键词来规定匹配不成功时做的事情:

//如果今天不是星期六或星期日,则会输出默认的消息:

var d=new Date().getDay();
switch (d)
{
    case 6 : x="今天是星期六" ; break;
    case 0 : x="今天是星期日" ; break;
    default : x="期待周末";
}

实际应用中, default 分支可以省略

实际应用中, default 分支可以被放置在任何一个 case 分支前、后,而且也不会影响程序的执行逻辑。