本篇学习目标:
1.掌握各个条件分支语句的用法;
2.理解常见案例实现思路。


目录

  • 一、if 语句
    • 1. 介绍
    • 2. 语法
    • 3. 注意事项
      • (1)实现选择功能
      • (2)殊途同归
      • (3)不建议省略大括号
      • (4)可以不写 else 分
    • 4. 案例
  • 二、多分支 if 语句
    • 1. 介绍
    • 2. 语法
    • 3. 注意事项
      • (1) else 分支只能有一个,必须出现在最后,可以省略
      • (2) "跳楼现象"
    • 4. 案例
  • 三、if 语句嵌套
    • 1.介绍
    • 2.案例
  • 四、三元表达式
    • 1.介绍
    • 2.语法
      • (1)布尔表达式
      • (2)true_value
      • (3) false_value
    • 3.优点
      • (1)结构更加简单
      • (2)可以赋值给一个变量
    • 4.案例
  • 五、switch 语句
    • 1.介绍
    • 2.语法
    • 3.运行机制
      • (1)表达式→结果
      • (2)匹配
      • (3)执行
    • 4.案例1
    • 5. 注意事项
      • (1) default 可以不写
      • (2) break灵活处理
    • 6.案例2
  • 六、总结

一、if 语句

1. 介绍

  • if 语句是最常用的条件分支语句
  • 作用:通过某个指定的判断条件,决定走哪个分支的代码。

2. 语法

<script>if (condition expression) {statement1;} else {statement2;}
</script>
  • condition expression:条件表达式,可以是任意的代码或者表达式,参与程序过程都会强制得到一个布尔值执行结果。(表达式,js 中遇到任何表达式都会先计算出一个结果然后才能继续参与程序。)

  • statement:结构体,js 中可以用 {} 包括一行到多行语句,这些语句整体组成了一个结构体,结构体中的语句要执行就都执行,要不执行就都不执行

  • if关键字:如果;

  • else关键字:否则;

  • 总结:如果条件表达式为真 true,执行 statement1,否则执行statement2。


3. 注意事项

(1)实现选择功能
  • if 语句可以实现选择的功能,两个分支可以选择一个执行,不会都执行。
(2)殊途同归
  • if 语句能够控制自己内部的流程,但是不论走哪个分支,结束后都要继续执行 if 语句后面的其他语句,叫做殊途同归现象。
<script>//if语句殊途同归现象,举例var a ;var s = prompt("请输入一个整数","100");if (s >= 60) {a = s;} else {a = 60;}alert("等级为"+a); //最后都会继续执行这个语句,殊途同归
</script>
(3)不建议省略大括号
  • if 语句后面的结构体如果是单行语句组成,可以省略 {} 不写但是不建议省略大括号,容易出现程序错误。
<script>var a ;var s = prompt("请输入一个整数","100");if (s >= 60) a = s;else a = 60;alert("等级为"+a);
</script>
(4)可以不写 else 分
  • if 语句可以不写 else 分支,表示条件成立就执行后面的结构体,如果条件不成立,直接跳出 if 语句不执行。
<script>var a ;var s = prompt("请输入一个整数","100");if (s >= 60) {a = s;alert("等级为"+a);}</script>

4. 案例

if语句,让用户输入考试成绩,反馈其是否及格。

 <script>var testScores = prompt("请输入您的考试成绩","60");if (testScores >= 60) {alert("恭喜您,及格了");} else {alert("很遗憾没有及格,请继续加油!");}</script>



二、多分支 if 语句

1. 介绍

  • 包含多个判断条件,对应多个分支;
  • 语法:if……else if……else if……else……
  • 如果……否则如果……否则如果…… 否则……

2. 语法

<script>if (条件1) {满足条件1,执行的结构体} else if (条件2) {不满足条件1,满足条件2,执行的结构体} else if (条件3) {不满足条件1/2,满足条件3,执行的结构体} else {不满足前面所有条件,执行的结构体}
</script>

3. 注意事项

(1) else 分支只能有一个,必须出现在最后,可以省略

  • 多分支 if 语句中可以有多个 else if 的分支,但是 else 分支只能有一个,必须出现在最后,作为备用的选项,而且 else 也可以省略不写,表示前面条件如果都不满足,直接跳出不走任何分支。

(2) “跳楼现象”

  • 多分支 if 语句有“跳楼现象”:条件从上往下依次验证,如果满足了某个条件,会立即执行后面的结构体,执行完之后,不会再往后验证其他的条件了,而是从这一层直接跳楼跳出if语句。

4. 案例

利用多分支 if 语句细分班级成绩区间。
优秀:85-100;
良好:75-84;
及格:60-74;
不及格:60以下。

<script>//多分支if语句案例//(不用设置比如(s >= 75 && s < 85) 这样的条件)//因为如果语句会往下走,表示上面的不符合,所以可以相对比较简化写成如下形式:var s = prompt("请输入您的成绩","100");if (s >= 85) {alert("您的成绩区间为优秀");} else if (s >= 75) {alert("您的成绩区间为良好");}else if (s >= 60) {alert("您的成绩区间为及格");} else {alert("您的成绩区间为不及格");}
</script>



三、if 语句嵌套

1.介绍

  • if 语句的结构体部分,代码可以是任意的代码,甚至是另外一组 if 语句
  • 也就是 if 语句内部嵌套了 if 语句。
  • 如果想执行内部 if 语句的某个分支,必须满足外部 if 语句的条件,同时还要满足内部 if 语句的某个条件
  • 优点:可以简化多分支 if 语句。

2.案例

利用 if 语句嵌套判断一个人是否退休。
男性:60 岁退休;
女性:55 岁退休。

<script>//if 语句嵌套,判断一个人是否退休。男性:60 岁退休;女性:55 岁退休。var age = parseInt(prompt("请输入您的年龄","55"));var sex = prompt("请输入您的性别","女");if (sex === "女") {if (age >= 55) {alert("恭喜您可以享受退休生活啦!");} else {alert("还要继续奋斗"+ (55 - age)+ "年,加油!");}} else  {if (age >= 60) {alert("恭喜您可以享受退休生活啦!");}else {alert("还要继续奋斗"+ (60 - age)+ "年,加油!");}}
</script>



四、三元表达式

1.介绍

  • 又叫三元运算符,必须有三个操作数参与的运算。
  • 操作符号:? :
  • 表达式:在参与JS程序时,都必须先计算出表达式结果,才能参与后续程序。
  • 由于三元表达式具备了一些选择的效果,所以也是一种条件分支语句
  • 作用:根据布尔表达式的结果,如果为真,三元表达式结果就是真值;如果为假,三元表达式结果就是假值。

2.语法

<script>boolean_expression ? true_value : false_value;
</script>

(1)布尔表达式

  • boolean_expression:布尔表达式,表达式在参与三元运算中必须求得一个布尔类型的值,要么是 true,要么是 false,结果作为判断依据,判断到底去:前面的值还是后面的值。

(2)true_value

  • true_value:布尔表达式的值为真时,三元表达式的结果。

(3) false_value

  • false_value:布尔表达式的值为假时,三元表达式的结果。

3.优点

  • 虽然if语句可以模拟三元表达式,但是三元表达式有自己的优点:

(1)结构更加简单

  • 二选一的情况下,三元表达式结构更加简单。
<script>//三元表达式 console.log(true ? 1 : 0);  //1console.log(false ? 1 : 0); //0
</script>

(2)可以赋值给一个变量

  • 三元表达式作为一个表达式参与程序时必须运算出结果才能参与,可以利用这个特点,将二选一结果赋值给一个变量。遇到给一个变量根据条件二选一赋值的情况,可以使用三元表达式。

4.案例

三元表达式,让用户输入一个整数,反馈给用户判断此整数大于等于3还是小于3。

<script>//三元表达优点:可以赋值给变量var a = 3;var b = parseInt(prompt("请输入一个整数","4")) >= a ? "大于等于3" : "小于3";alert(b);
</script>



五、switch 语句

1.介绍

  • 开关语句允许一个程序求一个表达式的值,并且尝试去匹配表达式的值到一个 case 标签。
  • 如果匹配成功,这个程序执行相关的语句。

2.语法

<script>switch (表达式) {case 值1:结构体1;break;case 值2:结构体2;break;……default: 结构体n;break;}</script>
  • switch:关键字表示开始进入一个开关语句。
  • 表达式:会求出一个具体的值,将这个值去与 {} 内部的 case 后面的值进行对比、匹配;
  • 如果值相等表示匹配成功。匹配相等时,方式是进行全等于匹配,不止值要相等,数据类型也要相等。
  • case:示例的意思,作为关键字后面必须跟一个空格,书写匹配的值。
  • case 后面的结构体:每个 case 匹配成功之后要执行的语句
  • break:用于打断结构体,直接跳出程序,模拟跳楼现象
  • default:相当于if语句中的 else,否则的情况,如果前面的 case 都不匹配,执行 default 后面的语句。

3.运行机制

(1)表达式→结果

  • switch 语句首先会将小括号内的表达式计算出一个结果

(2)匹配

  • 用结果去匹配结构体内部的 case;

(3)执行

  • 从上往下进行匹配,如果匹配成功,会立即执行这个 case 后面的语句,直到遇到一个 break 跳出整个 switch 语句;
  • 如果前面的 case 没有匹配成功,会跳过 case 之间的语句,去匹配下一个 case,直到匹配成功
  • 如果都不成功就执行 default 后面的语句。

4.案例1

输出星座性格。

<script>//switch语句//案例1:输出星座运势var star = prompt("请输入您的星座,为您分析性格","白羊座");switch (star) {case "白羊座":alert("优点:朝气蓬勃、热情坦率、热爱自由、慷慨真诚、勇敢直率。缺点:自我中心太强、缺乏耐心、好斗、三分钟热度、粗枝大叶、有时过于感性、记性差");break;case "金牛座":alert("优点:踏实靠谱、善于财务的管理、艺术细胞强、思维缜密、脚踏实地。缺点:固执、不懂变通、缺乏自信、容易敏感、容易被人误解、反应过慢。");break;case "双子座":alert("优点:搞怪机灵、反应灵敏、充满好奇心、风趣幽默、口才良好、积极主动、豁达开朗。缺点:低迷、耐力差、孩子气、缺乏安全感、容易敏感、敷衍了事、缺乏耐性。");break;case "巨蟹座":alert("优点:谨慎、创造力强、有坚强的意志力、组织能力强、富有同情心、善解人意。缺点:心软、苛刻、占有欲强、天性多疑且情绪化致难以取悦。");break;case "狮子座":alert("优点:思想开阔、热心、慷慨、有领导能力、不多疑、、乐观、思考、保护他人、为人慷慨、具幽默感。缺点:自以为是、刚愎自用、势利、能伸不能屈、喜欢接受奉承、喜欢要求别人、缺乏节俭的精神、死要面子活受罪。");break;case "处女座":alert("处女座追求完美,吹毛求疵是他们的特性。多数的处女座都很谦虚,但也因此给自己造成很大的压力。处女座的人不喜欢闲着,对别人常常乐于服务。缺乏自信的处女座有时候组织能力较差,需要家人与朋友们的鼓励去推动他们。。");break;case "天秤座":alert("优点: 责任心强、温婉善良、有求知欲、善解人意、因事制宜、适应力强、大度、与世无争、审美能力 、能屈能伸。缺点:优柔寡断、容易受人影响、比较懒惰、纠结。");break;case "天蝎座":alert("优点:现实至上、善于保守秘密、任劳任怨、不畏挫折、悟力快、洞悉能力强、专一、爱恨分明、舍己为人。缺点:个性倔强、蛮横、愚昧、远离人群的关怀和热情、外表坚强、内心脆弱、表里不一、孤僻自怜。");break;case "射手座":alert("优点:幽默感、心胸开阔,诚恳宽厚、行动力强、行事认真、讲义气,有正义感。缺点:心直口快、固执独断、偏激、过度理想化、反复无常、喜怒太形于色。");break;case "摩羯座":alert("优点:心地祥和仁慈、行动敏锐、爱好和平、爱恨分明、心觉敏锐、做事沉着、思想优越。缺点:过于压抑、不善表达、自我、容易陷入困境、孤独感太重、思想躁动。");break;case "水瓶座":alert("优点:乐于发掘真相、博学多思、理性的智慧、独立,有个人风格、创意十足。缺点:不按常理出牌、喜欢多管闲事、过于理想化、太相信自己的判断、思想多变,缺乏恒心、缺乏热情、我行我素。");break;  case "双鱼座":alert("优点:不自私、善解人意、具有想象力、浪漫、感情丰富、温和有礼、直觉力强、天真、富有同情心。缺点:粗心、浮躁、散漫、不切实际,幻想太多、缺乏理性,感情用事。");break;  default :alert("没有找到您的星座,请检查是否输入有误哦!");break;}
</script>


5. 注意事项

(1) default 可以不写

  • default 可以不写,相当于 if 语句没有 else。

(2) break灵活处理

  • break 关键字:根据结构需要有时必须在每个 case 后面都要写,为了模拟跳楼现象,如果不写break,对应的 case 后面的语句执行之后,不会跳出结构体,会继续想下执行其他 case 的后面的语句,直到遇到一个 break。
  • 可以利用 break 不写的情况制作一些特殊的案例(如下案例2)。

6.案例2

用户输入一个月份的数字,请返回给用户对应月份的天数。

<script>//案例2:输入月份数字,输出对应月份天数var m = prompt("请输入月份数字","1");switch (m) {case "1" :case "3" :case "5" :case "7" :case "8" :case "10" :case "12" :alert("2021年" + m + "月有31天");break;case "2" :alert("2021年" + m + "月有28天");break;default :alert("2021年" + m + "月有30天");break;}
</script>



六、总结

  • 总结:实际工作中使用三种语句的情景。
  • if 语句:最常用的语句,所有的判断情况都能够书写。
  • 三元表达式:多用于给变量赋值根据条件二选一的情况。
  • switch 语句:多用于给一个表达式去匹配多种固定值可能性的情况。

下篇继续:【69】JS(4)——表达式和语句②流程控制语句(2)循环语句

【68】JS(4)——表达式和语句②流程控制语句(1)条件分支语句相关推荐

  1. 〖大前端 - 基础入门三大核心之JS篇⑰〗- JavaScript的流程控制语句「while循环语句」

    当前子专栏 基础入门三大核心篇 是免费开放阶段.推荐他人订阅,可获取扣除平台费用后的35%收益,文末名片加V! 说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费开放,购买任意白宝书体系化专栏可加 ...

  2. JavaScript基础06-day08【if练习、条件分支语句switch、for循环】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  3. JavaScript-switch条件分支语句

    文章目录 条件分支语句(switch 语句) 1. 语法: 2. 执行流程: 2.1. 在执行时会依次将 case 后的条件表达式的值和 switch 后的条件表达式的值进行全等比较 2.2. 如果比 ...

  4. shell编程之函数和case多条件分支语句

    shell编程之函数和case多条件分支语句 函数介绍 函数语法定义 通过函数编写功能脚本 case语句 case条件分支语句介绍 函数介绍 函数介绍: shell 中允许将一组命令集合或语句形成一段 ...

  5. MATLAB 的条件分支语句

    MATLAB 的条件分支语句: 1)if...end  2)if...else...end  3) if...elseif...elseif...else...end  a=30; if a<2 ...

  6. 使用控制结构——条件分支语句——简单条件

    简单条件判断时,如果条件为true 那么pl/sql执行器会执行then 后的操作:如果为false或是null,那么pl/sql执行器会直接退出条件分支语句.下面给个例子 根据雇员名输出雇员工资,并 ...

  7. switch中case后可以是表达式吗_自学C++基础教程【流程控制语句】(switch语句 )...

    switch语句:又被称之为 分支选择语句,它提供了一种更方便的方法来实现深层嵌套的if.else逻辑: switch语句先计算表达式的值,并逐个与其后的常量表达式的值相比较,当表达式的值与某个常量表 ...

  8. C语言流程控制语句——3个循环语句和一个条件语句

    循环控制语句 C语言有3种循环 for while do while while循环 我们先来看下while循环,流程图如下: 下来看个小示例 do while循环 流程图如下: 下来看个小示例 两个 ...

  9. shell脚本(二)--if流程控制语句和for循环语句的使用

    理论部分: 1.在简单的脚本中各条语句按顺序执行,从而实现自动化的管理, 顺序单一执行太过机械化,不够"智能",难以实现更加灵活的系统任务. 例如:批量安装软件包 100台机器 5 ...

最新文章

  1. MyBatis的架构和其运行流程
  2. SAP Commerce Extension的Web应用启动问题
  3. android 16进制 全透明_你有几种实现方案Android 设备唯一标识?
  4. linux怎么运行g77,Linux安装g77编译器的技巧
  5. Jquery实现循环删除Reaper某一行
  6. Android 学习思维导图
  7. Android studio 下载安装
  8. 如何用sql语句创建一个表(简单基础)
  9. MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
  10. Win10安装Centos7双系统
  11. JS 微信公众号如何跳转到另一个微信公众号的链接
  12. VUE3 Composition API详解
  13. excel表格如何转换成word表格_告诉你如何将excel表格转换成word文档
  14. c语言实现图书借阅管理系统
  15. WPF 开机一键启动程序V1.0【原创】
  16. 机器学习——决策树+随机森林
  17. 蓝桥寒假训练1-2013年第四届蓝桥杯省赛
  18. GateWay网关报错:Could not obtain the keys
  19. 爱普生Epson SureColor T5480 打印机驱动
  20. MGN:Learning Discriminative Features with Multiple Granularities for Person Re-Identification阅读笔记

热门文章

  1. 讽刺c语言,鲁迅先生评价《儒林外史》“婉而多讽”,达到我国古典小说讽刺艺术的高峰。请从小贴士中选择一项,结合作品具体内,赏析《儒林外史》的讽刺艺术:...
  2. 如何给word文档设置护眼模式
  3. u盘中毒现象为哪般,如何营救
  4. 重磅来袭,自动化测试APK---傻猴
  5. 魔兽世界服务器网页建设,上班族福利?高玩制作打开网页玩国服魔兽
  6. exit函数 _exit()函数,孤儿进程,僵尸进程
  7. java 9宫格抽奖_原生JS实现九宫格抽奖
  8. beyond compare过滤指定文件或文件夹
  9. 视频教程-ArcGIS之模型构建器(ModelBuilder)视频教程(GIS思维)-大数据
  10. Golang系列篇之配置内网GO仓库源代理(三)