文档章节

JS中switch语句的case子句的用法

文文1
 文文1
发布于 2015/04/15 22:33
字数 692
阅读 48
收藏 0

工作原理:switch首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的表达式值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

具体执行过程:

//具体的执行,就是这样
//1. 计算switch小括号里面的表达式,得出结果a
//2. 计算case后边的表达式,得出结果b
//3. 进行验证 a === b 如果相等,则执行case,否则跳过这个case,继续2步骤
//4. 强制中断switch语句可以用return , break这俩个关键字在case后边的执行语句里,
//   可以跳出switch的验证
//加上break语句
//这样,只要有一次可以匹配通过,就会跳出其他的判断条件和if else if else 差不多

实例1:

1.
var id = 2;
var s = 1;
switch(id){//计算id的值
    case 2://计算常量
        alert('2 true');
    case 1 + 1://计算数字相加
        alert('1 + 1 true');
    case 1 * 2://计算数字相乘
        alert('1 * 2 true');
    case s * 2://计算变量
        alert('s * 2 true');
    default : //默认执行
        alert('default');
}
2.
switch(id){//计算id的值
    case 2://计算常量
        alert('2 true');
        break;
    case 1 + 1://计算数字相加
        alert('1 + 1 true');
        break;
    case 1 * 2://计算数字相乘
        alert('1 * 2 true');
        return ;//return也可以中断switch的case,并且会将整个方法中断
    case s * 2://计算变量
        alert('s * 2 true');
        break;
    default : //默认执行
        alert('default');
}
3.
function type(obj){
   switch(typeof obj){
       case 'string' : 
           return 'string';
       case 'function':
           return 'function';
       case 'object':
           return 'object';
       case 'number':
           return 'number';
   }
}

实例2:

1.
function case1(num){ 
    switch(num){ 
        case 1: 
            document.writeln("show 1!!"); 
            break; 
        case 2: 
            document.writeln("show 2!!"); 
            break; 
        case 3: 
            document.writeln("show 3!!"); 
            break; 
        default: 
            document.writeln("show others!!"); 
            break; 
    } 
}
2.
function case2(num){ 
    switch(num){ 
        case 1: 
            document.writeln("show 1!!"); //沒有break,所以會繼續執行case 2 
        case 2: 
            document.writeln("show 2!!"); 
            break; 
        case 3: 
            document.writeln("show 3!!"); //沒有break,所以會繼續執行case 4 
        case 4: 
            document.writeln("show 4!!"); 
            break; 
        default: 
            document.writeln("show others!!"); 
            break; 
    } 
}
3.
function case3(num){ 
    switch(num){ 
        case 1: 
        case 2: //相當於if(num==1 || num==2) 
            document.writeln("show 1 or 2!!"); 
            break; 
        case 3: 
        case 4: //相當於if(num==3 || num==4) 
            document.writeln("show 3 or 4!!"); 
            break; 
        default: //相當於else 
            document.writeln("show others!!"); 
            break; 
    } 
}
4.
function case4(num){ 
    switch(f(num)){ 
        case 1: 
        case 2: //相當於if(num==1 || num==2) 
            document.writeln("show 1 or 2!!"); 
            break; 
        case 3: 
        case 4: //相當於if(num==3 || num==4) 
            document.writeln("show 3 or 4!!"); 
            break; 
        default: //相當於else 
            document.writeln("show others!!"); 
            break; 
    } 
} 
5. 
function case5(num){ 
    switch(num<=2){ //case可以为表达式
        case true: 
            document.writeln("num <= 2"); 
            break; 
        case false: 
            document.writeln("num > 2"); 
            break; 
    } 
} 
6.//表示一个范围
function case6(x){
    switch(true){ 
        case x>0&&x<10: 
            alert(1); 
            break; 
        case x>=10&&x<20: 
            alert(2); 
            break; 
    } 
}
又如比如表示范围90~100,
function case7(num){
    switch(true){
        case num>90&&num<100:
            alert("hello");
            break;
    }
}


© 著作权归作者所有

共有 人打赏支持
文文1
粉丝 21
博文 351
码字总数 117723
作品 0
长沙
程序员
私信 提问
前端基础(二):变量声明的6种方法

字数:2869 阅读时间:10分钟 最新的ECMAScript规范中,变量声明有var、function、let、const、import、class六种方法。 var 语法: var varname [= value1 [, vaname1[,valname2 ...]]]; 对...

老司机带你撸代码
06/09
0
0
《JavaScript权威指南》笔记(四)

第四篇笔记的内容主要涉及:javascript中的各种语句。 1. switch语句: (1)其中的case表达式采用===匹配,而不是==做匹配 (2)习惯上将default标签放在switch主体的结尾,但实际上可以放在...

小微
2012/08/28
0
2
JS 中 if / if...else...替换方式

说说烂大街的,程序中用得最多的流程判断语句。 对着曾经满屏的,心想能不能搞点事情,折腾点浪花浪里呀浪。 对顶着“这个需求很简单,怎么实现我不管,明天上线”的程序猿,答案必须YES。 ...

Kenz
07/15
0
0
使用jQuery快速高效制作网页交互特效——01 第一章 JavaScript基础

1、 JavaScript(弱类型语言):是一种描述性语言,也是一种基于对象(Object)和事件驱动(Event Driven)的,并具有安全性能的脚本语言。 特点:1、主要用来在HTML页面中添加交互行为。 2、是...

逆風〠飛翔
07/30
0
0
JavaScript基础——变量-运算符-流程控制语句

JavaScript是在客户端浏览器解释执行的语言,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的: 1.ECMAScript:描述了该语言的语法和基本对象; 2.文档对象模型(Document Object M...

codejson
07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SonarQube+Scanners代码质量管理

简介 sonaqube是一个开源代码质量管理平台,致力于持续分析和测量技术质量。 系统构成 SonarQube平台由4部分组成: SonarQube服务器 Web服务器的开发者,管理者,浏览质量快照和配置SonarQu...

阿dai
58分钟前
0
0
mysql-router 8 yum安装

1.配置安装源 #配置MySQL5.7的安装源 #https://repo.mysql.com/mysql57-community-release-el7.rpm #https://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm rpm -Uvh https:/......

MichaelShu
今天
0
0
     甲骨人-MySQL网络课-day03

===================================================================================== ======================= 第三章 mysql SQL语句 1、mysql接口自带命令 1.1、\h 或 help 或 ? 1.2、......

hnairdb
今天
0
0
Redis异构集群之间数据迁移方案

一、Redis集群迁移工具 最近在做Redis数据迁移,网上找了两款开源的Redis迁移工具。 第一种:redis-port Codis官方提供的一个工具,redis-port是一个Redis工具,通过解析rdb文件,实现Redis...

IT--小哥
今天
3
0
解压zip包(zip4j)

1:引入zip4j_1.3.2.jar 2:源码如下: package test;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import net.lingal......

uug
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部