Switch语句的技巧

概述

switch语句对一个表达式求值,将结果与 case 子语句比较,如果匹配,则从 case 处的语句向下执行。

语法

break;语句是可选择的,如果遇到break;则会跳出整个switch语句。如果没有任何case匹配,则进入到default:的分支。default:分支也是可选的。

switch (expression) {
case value1:
// 当 expression 的结果与 value1 匹配时,从此处开始执行
statements1;
[break;]
case value2:
// 当 expression 的结果与 value2 匹配时,从此处开始执行
statements2;
[break;]
...
case valueN:
// 当 expression 的结果与 valueN 匹配时,从此处开始执行
statementsN;
[break;]
default:
// 如果 expression 与上面的 value 值都不匹配时,执行此处的语句
statements_def;
[break;]
}

case中使用条件判断

看看下面的代码,当foo为0,1,2,3的时候显示alert。

var foo = 1;
switch (foo) {
case 0:
case 1:
case 2:
case 3:
alert('yes');
break;
default:
alert('not');
}

有没有更好的写法呢?下面这个显然更简洁清晰啊。

var foo = 1;
switch (true) { // 非变量 TRUE 替代 foo
case foo >= 0 && foo <= 3:
alert('yes');
break;
default:
alert('not');
}

表示等级

精心设计的switch把_最少最稀有的条件_在上面,普通的条件放在相对下面的位置

function rankProgrammer(rank){
switch(rank){
case "高级":
this.secretary = true;
case "中级":
this.laptop = true;
this.bonus = true;
case "初级":
this.salary = true;
this.vacation = true;
}
}
var xiaohu=new rankProgrammer("高级");
console.log(xiaohu);

以上内容给大家介绍了switch语句的技巧,希望对大家以上帮助。

(0)

相关推荐

  • java switch语句使用注意的四大细节

    switch语句的格式如下:(它的功能是选出一段代码执行) 复制代码 代码如下: switch(整数选择因子) { case 整数值1 : 语句; break; case 整数值2 : 语句; break; case 整数值3 : 语句; break; case 整数值4 : 语句; break; case 整数值5 : 语句; break; ... default:语句; } 但是要注意几点如下: 1.switch中case的参数类型只能是int类型,但是放byte,short,char类型的

  • php 随机数的产生、页面跳转、件读写、文件重命名、switch语句

    复制代码 代码如下: <?php num = rand(1,5); witch($num){ case 1: $fp1=fopen("f1.dat",'r'); $oname = fgets($fp1); $nname = date("YmdHis"); rename($oname,$nname); fclose($fp1); unlink("f1.dat"); $fp1=fopen("f1.dat",'w'); fwr

  • 解析c语言switch中break语句的具体作用

    问题:break在for循环.while循环等循环流程控制中起的作用是停止执行break后面的语句,跳出本次循环,并跳出该循环控制体:在switch条件选择中,没有了循环控制,break又起什么作用呢? 解决办法:1. switch语句的执行流程是:首先计算switch后面圆括号中表达式的值,然后用此值依次与各个case的常量表达式比较,若圆括号中表达式的值与某个case后面的常量表达式的值相等,就执行此case后面的语句,执行后遇到break语句就退出switch语句,程序流程转向开关语句的下

  • 解析如何利用switch语句进行字符统计

    复制代码 代码如下: #include <stdio.h>void cotTime();main(){   cotTime();}void cotTime(){  int c, i, nwhite, nother, ndigit[10];  nwhite = nother = 0;  for(i=0;i<10;i++)  {    ndigit[i] = 0;  }  while((c = getchar()) != EOF)  {    switch(c) {    case '0':

  • java 学习笔记(入门篇)_多选择结构switch语句

    多选择结构switch语句 在java中为多路分支选择流程专门提供了switch语句,switch语句根据一个表达式的值,选择运行多个操作中的一个.他的语法形式如下: 复制代码 代码如下: switch(表达式){ case 表达式常量1:语句1: break: case 表达式常量2:语句2: break: ...... case 表达式常量n:语句n: break: [default:语句n+1:] } 其中,一个case表达式常量成为标号,代表一个case分支的入口.switch语句在运行

  • Switch语句的技巧

    概述 switch语句对一个表达式求值,将结果与 case 子语句比较,如果匹配,则从 case 处的语句向下执行. 语法 break;语句是可选择的,如果遇到break;则会跳出整个switch语句.如果没有任何case匹配,则进入到default:的分支.default:分支也是可选的. switch (expression) { case value1: // 当 expression 的结果与 value1 匹配时,从此处开始执行 statements1: [break;] case v

  • thinkPHP模板中for循环与switch语句用法示例

    本文实例讲述了thinkPHP模板中for循环与switch语句用法.分享给大家供大家参考,具体如下: 1.for用法 <for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" > </for> 案例 <for start="1" end="100"> {$i}

  • C++性能剖析教程之switch语句

    前言 几乎每本面向初学者的C语言或C++书籍在前面两章都会提到分支控制语句if--else和switch--case,在某些情况下这两种分支控制语句可以互相替换,但却很少有人去深究在if--else和switch--case语句的背后到底有什么异同?应该选择哪一个语句才能使得效率最高?要回答这些问题,只能走到switch语句的背后,看看这些语句到底是怎么实现的. 基本格式 switch语句的基本格式如下: switch (表达式) { case 常量表达式1:<语句序列1><break;

  • PowerShell数组结合switch语句产生的奇特效果介绍

    PowerShell数组与switch语句,PowerShell中数组可以与switch语句结合,产生意想不到的效果. PowerShell中数组可以与switch语句结合,产生意想不到的效果. 先看看例子: 复制代码 代码如下: $myArray = 1,5,4,2,3,5,2,5 Switch ( $myArray ) {  1 { 'one' }  2 { 'two' }  3 { 'three' }  4 { 'four' }  5 { 'five' } } 数组中的所有元素都是在1,2

  • 常用SQL语句优化技巧总结【经典】

    本文实例总结了常用SQL语句优化技巧.分享给大家供大家参考,具体如下: 除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生. ①通过变量的方式来设置参数 好: stringsql = "select * from people p where p.id = ? "; 坏: stringsql = "select * from people p where p.id = "+id; 数据库的SQL文解析和执行计划会保存在缓存中,但是SQL文只要有

  • Java控制语句之if、switch语句

    java if语句 Java控制语句分为三大类:①顺序结构:②选择结构:③循环结构. -------------------------------------------------------------------------------- 选择结构又分为:①单选择结构:②双选择结构:③多选择结构. 主要涉及: if_else , switch , while , break 和 continue , for. if单选择结构 对条件表达式进行一次测试,若测试为真,则执行下面的语句,否则跳

  • 浅谈选择结构if语句和switch语句的区别

    1.选择结构if语句格式及其使用 A:if语句的格式: if(比较表达式1) { 语句体1; }else if(比较表达式2) { 语句体2; }else if(比较表达式3) { 语句体3; } ... else {   语句体n+1; } B:执行流程: 首先计算比较表达式1看其返回值是true还是false, 如果是true,就执行语句体1,if语句结束. 如果是false,接着计算比较表达式2看其返回值是true还是false, 如果是true,就执行语句体2,if语句结束. 如果是fa

  • Swift中swift中的switch 语句

    废话不多说了,直接给大家贴代码了,具体代码如下所示: /** switch 语句 */ let str = "aAbBacdef" let str2 = "aAbBadef" let str3 = "aAbBadeff" // var array = []; for c in ["A", "a", str3] { switch c { // case "a": case "a&

  • Swift开发中switch语句值绑定模式

    Switch简介 Switch作为选择结构中必不可少的语句也被加入到了Swift中,只要有过编程经验的人对Switch语句都不会感到陌生,但苹果对Switch进行了大大的增强,使其拥有其他语言中没有的特性. // switch语句值绑定模式 let point = (100, 10) switch point { // 遇到有匹配的就不会在执行下一个了 这样子也可以啊case let (x, y) case (let x, let y): print("\(x): \(y)") //

  • Swift中switch语句区间和元组模式匹配

    废话不多说了,下面一段代码给大家介绍了switch语句区间和元组模式匹配,具体内容如下所示: // switch 的广义匹配 let x = 1000 // 也就是说并没有像C语言那样 要求 switch 后面的是整数常量 switch x { // case后面可以跟区间啦 case 1...9: print("个位数") case 10...99: print("十位数") case 100...999: print("百位数") case

随机推荐