switch-case分支结构

1.语法

switch(表达式){    // 不是布尔类型:是一个确定的变量
    case 值1:     // 值1,值2...都是字面量
        表达式的结果 === 值1,需要执行的代码
        break;
    case 值2:
        表达式的结果 === 值2,需要执行的代码
        break;
    case 值3:
        表达式的结果 === 值3,需要执行的代码
        break;
    default:
        表达式的结果和上面所有的case后面的值都不全等,则会执行这里的代码
        break;
}

2.注意事项

  • 1.表达式的结果要和值一定是全等的关系 ===

  • 2.break作用:结束该switch语句,所以一般情况下要加上,如果不加上则会发生穿透

    • 穿透:从上一个case代码快执行到下一个case代码快

    • break关键字的作用就是防止穿透

  • 3.default语句可以写在任何地方,可以省略,一般写在最后,这是一种代码规范

switch-case穿透用法

<script>/**合理穿透:当存在多种值需要执行相同代码时使用穿透可以节省代码* 用户输入某一个月份,告诉用户这个月份属于什么季节* 12,1,2 冬季* 3,4,5 春季* 6,7,8 夏季* 9,10,11 秋季*/let month = +prompt("请输入月份");switch (month){case 12:case 1:case 2:alert("冬季");break;case 3:case 4:case 5:alert("春季");break;case 6:case 7:case 8:alert("夏季");break;case 9:case 10:case 11:alert("秋季");break;default:alert("没有这个季节哦");break;}</script>

三元表达式(重点)

  • 1.运算符根据参与运算的值数量分为一元、二元、三元运算符

    • 一元运算符:只能操作一个值 ++ -- !

    • 二元运算符:操作两个值 1 + 1 1 > 0

    • 三元运算符:操作三个值

  • 2.三元运算符语法

    • 三元运算符: ?:

    • 三元表达式:

      表达式?代码1:代码2
      • 1.如果表达式成立则执行代码1,否则执行代码2

  • 2.如果代码1或者代码2有运算结果则三元运算式的结果就是他们其中的一个

    • 三元运算符做的事和if-else类似,只是代码更简洁

    • 三元表达式中:表达式部分永远是条件,最终代表整个结果的不是代码1 就是 代码2

<script>/*一元运算符:由一个值参与的运算符  :  a++    a--  !a二元运算符:  由两个值参与的运算符 :  a + b   a > b三元(三目)运算符:由三个值参与的运算符*//** 三元运算符:  ?:* 三元表达式:   表达式?代码1:代码2*      * 1.如果表达式成立则执行代码1,否则执行代码2*      * 2.如果代码1或者代码2有运算结果则三元运算式的结果就是他们其中的一个** 三元运算符做的事和if-else类似,只是代码更简洁*///案例1:let num1 = 10;num1 > 0 ? console.log('哈哈') : console.log('嘿嘿');//上面这个三元表达式等价于下面的if - else语句// if(num1 > 0){//     console.log ( "哈哈" );// }else{//     console.log ( "嘿嘿" );// }//案例2:三元表达式一般应用是用来赋值let num2 = 20;let res2 = num2 > 0 ? num2 + 1 : num2 - 1;console.log ( res2 ); // 21// 上面这个三元表达式等价于下面的if - else语句// if(num2 > 0){//     res2 = num2 + 1;// }else{//     res2 = num2 - 1;// }//练习:输出性别  (实际开发中,性别通常会使用一个布尔类型来存储,这样存储效率更高)let name = "海海";let age = 18;let gender = true;      // true男 1         false 女 0console.log("我的名字是"+name+",我的年龄是"+age+",我是一个"+(gender === true ? "男":"女")+"生");</script>

三种分支结构语法总结

  • 1.原则上,三种分支结构语句之间可以互转,只不过每一种分支结构语句适用场景不一样

  • 2.if分支结构:适合条件判断

    • 最常用:if-else 两种互斥条件判断

  • 3.switch-case 适合做固定值匹配

  • 4.三元表达式: 比if-else代码更简洁,在项目中最常见

下一章:JavaScript 进阶第二章(循环结构)

JavaScript 进阶第一章(分支结构)相关推荐

  1. javascript百炼成仙 第一章 掌握JavaScript基础1.5基础考核

    叶小凡兴奋,那种钻研了很久之后猛地豁然开朗,感觉实在是太爽了.乘着心情大好,叶小凡继续钻研"JavaScript基础修炼要诀",一晃半天时间过去了.叶小凡性格谨慎,也非常刻苦,有很 ...

  2. javascript百炼成仙 第一章 掌握JavaScript基础1.6 叶老

    这一日,叶小凡来到青山院附近的小山上修炼,忽然,被一块石头绊了一跤.正在他自认倒霉打算爬起来的时候,在石头缝里边发现了一枚古怪的戒指.戒指通体呈现一种枯黄色,似有一些年代悠久之感. "摔了一 ...

  3. javascript百炼成仙 第一章 掌握JavaScript基础01 初入宗门

    前些天发现了一个巨牛的人工智能学习博客,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转 乐阳村,处于脚本大陆东部的边缘地带,民风淳朴,村民日出而作,日落而息.这一日清晨,所有村民来到村庄的门口,正 ...

  4. javascript百炼成仙 第一章 掌握JavaScript基础1.8 对象的取值

    "小娃娃,我现在问你,如果我事先不知道对象的某个属性叫什么,那又该怎么访问对象中对应这个属性的值呢?"叶老笑呵呵地问到. "什么什么,事先都不知道对象的属性名称,那怎么可 ...

  5. javascript百炼成仙 第一章 掌握JavaScript基础1.4数据类型

    修行还在继续,随着对要诀的深入,叶小凡明白,在编程世界,刚才的直接量都属于一种数据.和人有男女一样,数据也是有类型的. 在JavaScript中,数据可分为两类,分别为原生数据类型(primitive ...

  6. javascript百炼成仙 第一章 掌握JavaScript基础1.7 对象数据类型

    听到这句话,叶小凡一顿,动作停止了下来. 对象数据类型,这在JavaScript基础修炼要诀中只是提了一下,但是并没有细讲,这个对象数据类型一直以来都深深地勾起了叶小凡的好奇心. "小娃娃, ...

  7. javascript百炼成仙 第一章 掌握JavaScript基础 1.2直接量

    前些天发现了一个巨牛的人工智能学习博客,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转 叶小凡的住处被安排在青山院西北角的一个房间里,虽不宽敞,倒也干净.叶小凡两眼露出振奋的眼神,随便吃了点乡亲们 ...

  8. 第四章:分支结构程序设计

    说明:程序中用到了逻辑运算符"!",含义是"非". 关系运算符和关系表达式 1.关系运算符 运算符 含义 > 大于 >= 大于等于 < 小于 ...

  9. 第四章分支结构程序设计

    引例 [例4.1]输入三角形的三条边,判断是否能能构成三角形,若能则计算并输出三角形的面积,否则给出出错提示. [例4.2]编写程序,输人x的值,按以下分分段函数计算并输出y的值. y=f(x)= x ...

最新文章

  1. Jakarta EE:云原生Java的新平台
  2. 《星球大战:前线2》预告片发布
  3. 小程序实现长按删除图片
  4. html 滤镜兼容,CSS3 中各种滤镜介绍和兼容性说明 - 文章教程
  5. 计算机控制与网络,网络与通信技术在计算机控制的作用
  6. 【python】热力图绘制: intensity_heatmap,density_heatmap
  7. ElasticSearch的优点
  8. 经典而常用的配乐和背景音乐合集(上)
  9. matlab 画标准正态曲线,matlab中如何画标准正态分布的密度函数曲线?
  10. ubuntu系统设置开机启动项
  11. 翻译:Tree Energy Loss: Towards Sparsely Annotated Semantic Segmentation
  12. 【Arduino】入门篇——人体红外自动报警
  13. 设计师必看!10个非常重要的图片无损编辑技巧
  14. Android拍摄raw照片,这20款摄影APP,让你的照片飞上天!
  15. WordPress数据库文章表(字段说明)
  16. SK电讯与霍尼韦尔结成物联网联盟以推动LoRa应用
  17. ANSI终端常用控制字符
  18. 百度地图测距工具distanceTool鼠标位置偏差不一致问题
  19. 学习Vue的SSR,这可能是最好的教程
  20. 记录一下js获取上周、下周日期

热门文章

  1. OSChina 周一乱弹 —— 有妹子愿意帮助一位爱情残疾人么?
  2. 解析模型——预测轰炸机攻击成功的概率
  3. ccf-csp认证期末预测之最佳阈值(2020年12月13日)
  4. java正则验证邮箱
  5. 智能电视“病态”逻辑:被玩坏的商业模式与被摧残的用户体验
  6. 计算机专业学校运动会霸气口号,学校运动会霸气口号
  7. RMAN正确地删除Archivelog以及设置有备库的归档删除策略
  8. vue.js 三种方式安装
  9. asp做一个excel导入到access的功能
  10. QQ邮箱 v5.5.9