switch-case语句---分支语句---多分支语句

语法:

      switch(表达式){
case 值1:代码1;break;
case 值2:代码2;break;
case 值3:代码3;break;
case 值4:代码4;break;
...多个case
default:代码5;
}
     

*注意问题:

     * default后面的break是可以省略的
     * default也可以省略
     
     * switch-case 语句中和case后面的值比较的时候使用的是严格的模式
     * break是可以省略
 

执行过程:

     * 获取表达式的值,和值1比较,如果一样,则执行代码1,遇到break则跳出整个的语句,后面代码不执行
     * 如果表达式的值和值1不一样,则和值2比较,如果相同则执行代码2,遇到break则跳出
     * 否则和值3比较,相同则执行代码3,遇到break,跳出;否则和值4比较,相同则执行代码4,遇到break则跳出;否则直接执行代码5

练习1: 获取一个人的成绩的级别, 如果是A级则显示90到100直接的分数

* 如果是B级则显示80到90分
* 如果是C级则显示70到80之间分数
* 如果是D级则显示60到70分之间
* 否则显示0到59之间
 
 var jiBie = "E";
switch (jiBie) {
case "A":
console.log("90到100之间");
break;
case "B":
console.log("80到90之间");
break;
case "C":
console.log("70到80之间");
break;
case "D":
console.log("60到70之间");
break;
default :
console.log("0到59之间");
}
 

注意问题:

* switch-case 语句中和case后面的值比较的时候使用的是严格的模式: ===3个等于号,类型相同+值相同,更严格

   var num = "10";//字符串
  console.log("10"===10);//true还是false
switch (num) {
case 10:
console.log("数字的10");
break;
case "10":
console.log("字符串的10");
break;
}

练习2: 根据月份显示对应的天数

      根据月份显示对应的天数,分析:
      1,3,5,7,8,10,12 ---31天
      2----28天
      4,6,9,11----30
 

代码如下:(代码不规范,应格式化下,此处是方便理解)

         var month=parseInt(prompt("请输入月份"));
switch (month){
case 1:console.log("31天");break;
case 2:console.log("28天");break;
case 3:console.log("31天");break;
case 4:console.log("30天");break;
case 5:console.log("31天");break;
case 6:console.log("30天");break;
case 7:console.log("31天");break;
case 8:console.log("31天");break;
case 9:console.log("30天");break;
case 10:console.log("31天");break;
case 11:console.log("30天");break;
case 12:console.log("31天");break; }

代码优化:

相同的归类+break是可以省略

     var month = parseInt(prompt("请输入月份"));
      switch (month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
          console.log("31天");
          break;
        case 4:
        case 6:
        case 9:
        case 11:
          console.log("30天");
          break;
        case 2:
          console.log("28天");
          break;
      }

练习3:根据数字显示对应的星期


      var num = parseInt(prompt("请输入一个星期的数字"));
      switch (num) {
        case 1:
          console.log("星期一");
          break;
        case 2:
          console.log("星期二");
          break;
        case 3:
          console.log("星期三");
          break;
        case 4:
          console.log("星期四");
          break;
        case 5:
          console.log("星期五");
          break;
        case 6:
          console.log("星期六");
          break;
        case 7:
          console.log("星期日");
          break;
        default:
          console.log("输入错误");
      }
 

JS基础语法---分支语句之:switch-case语句---3个练习的更多相关文章

  1. if语句,if...else if语句和switch...case语句的区别和分析

    前段时间在工作中遇到了一个关于条件判断语句的问题,在if语句,if else if语句和switch case语句这三者之间分析,使用其中最有效率的一种方法. 所以就将这个问题作为自己第一篇博客的主要 ...

  2. Java基础之循环语句、条件语句、switch case 语句

    Java 循环结构 - for, while 及 do...while 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java中有三种主要的循环结构: whi ...

  3. Python | 基础系列 · Python为什么没有switch/case语句?

    与我之前使用的所有语言都不同,Python没有switch/case语句.为了达到这种分支语句的效果,一般方法是使用字典映射: def numbers_to_strings(argument): sw ...

  4. js 学习之路7:switch/case语句的使用

    语法格式: switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: n 与 case 1 和 case 2 不同时执行的代 ...

  5. JS基础语法---分支语句之:三元表达式

    获取两个数字中的最大值 用if-else语句        var num1 = 10;        var num2 = 100;        if (num1 > num2) {     ...

  6. JS基础语法---分支语句之:if语句,if-else语句,if-ever if语句

    //if语句只有一个分支 //if-else语句有两个分支,最终执行一个分支 //if-else if-else if-else if-else if..........else---多分支,最终也是 ...

  7. JS基础语法---分支语句总结

    分支语句: if语句:一个分支 if-else语句:两个分支,最终只执行一个分支 if-else if-else if...语句: 多个分支,也是只会执行一个 switch-case语句:多分支语句, ...

  8. JavaScript基础知识(if、if else、else if、while、switch...case语句)

    13.语句 概念:就是分号(:) 代表一条语句的结束 习惯:一行只编写一条语句:一行编写多条语句(代码可读性较差) 语句块:可以包含多条语句     "{ }"将多条语句包裹 u ...

  9. JavaSE基础(七)--Java流程控制语句之switch case 语句

    Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支. 语法 switch case 语句语法格式如下: switch(exp ...

随机推荐

  1. JavaWeb问题记录——在Windows上启动Tomcat后命令行窗口乱码

    JavaWeb问题记录——在Windows上启动Tomcat后命令行窗口乱码 摘要:本文主要记录了在Windows上启动Tomcat后,命令行窗口出现乱码的问题及解决办法. 问题重现 在Windows ...

  2. Cesium区分单击【LEFT_CLICK】和双击事件【LEFT_DOUBLE_CLICK】

    问题描述 在cesium中,用户鼠标左键双击视图或Entity时,实际触发的是两次click和一次dbclick事件,非常影响代码设计,本文记录了如何区分单击[LEFT_CLICK]和双击事件[LEF ...

  3. docker 踩坑日记The last packet sent successfully to the server was 0 milliseconds ago.

    The last packet sent successfully to the server was 0 milliseconds ago. 今日遇到了这个坑,看似平白无奇. 首先,我定位到是数据库 ...

  4. Android 单选列表对话框 setSingleChoiceItems

    private Button button; private final CharSequence[] items = { "北京", "上海", " ...

  5. 如何判断Linux系统安装在VMware上?

    如何判断当前Linux系统是否安装在VMware上面呢? 因为公司大部分服务器位于VMware上,也有小部分系统部署在物理机上面.今天老大要求统计一下VMware和物理机上服务器的数量,个人简单测试. ...

  6. django验证码captcha

    官方文档 https://django-simple-captcha.readthedocs.io/en/latest/usage.html#installation 使用命令安装pip instal ...

  7. c# 获取sqlserver 运行脚本的print消息的方法分享

    转自:http://www.maomao365.com/?p=6923  摘要: 在sql脚本的编写中,我们经常使用sql脚本print消息,作为输出测试, 通过获取print消息,我们可以快速获取程 ...

  8. Linux-3.14.12内存管理笔记【伙伴管理算法(2)】

    前面已经分析了linux内存管理算法(伙伴管理算法)的准备工作. 具体的算法初始化则回到start_kernel()函数接着往下走,下一个函数是mm_init(): [file:/init/main. ...

  9. Linux防火墙firewall和iptables的使用

    防火墙是整个数据包进入主机前的第一道关卡. Linux中有两种防火墙软件,ConterOS 7.0以上使用的是 firewall,ConterOS 7.0以下使用的是 iptables,本文将分别介绍 ...

  10. 006.MongoDB副本集

    一 MongoDB 复制(副本集) 1.1 复制概述 MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的 ...