JavaScript条件分支语句

2,762 阅读2分钟

JavaScript条件分支语句

表达式 和 语句

两者的区别

表达式是一组代码的集合,JavaScript解释器会将其计算出一个结果

表达式:因为表达式可被求值 所以他可以写在赋值语句的右侧

语句: js 整句或命令,js 语句是以分号结束(可以省略)

比如: if语句 for 循环语句

而语句不一定有值 所以比如 alert( ) for 和 break 等语句就不能被用于赋值

分支语句

1、程序三大流程控制语句

1648309943405.png

2、分支语句

分支语句可以让我们有选择性的执行想要的代码

分支语句包含:

If分支语句

三元运算符

if 条件分支语句

if语句有三种使用:单分支、双分支、多分支

单分支使用语法:

括号内的条件为true时,进入大括号里执行代码

小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型

if ( 条件 ) {

满足条件要执行的代码

单分支使用示例:

    <script>
        // ( )里面书写条件  { }里面书写条件满足时执行的代码
        // 满足if 的条件  就执行哪一个条件后面的 {内容}
        // 前面满足则不考虑后面的内容
        let money = 10000
        // 变量为10000 条件为5000  大于5000 满足要求 为真 true 
        if (money >= 5000){
            console.log('吃米其林三星');
        }  
    </script>

双分支使用语法 :

else :不满足条件是执行的代码

if ( 条件 ) {

满足条件要执行的代码

} else {

不满足条件是执行的代码

示例:

    <script>
        // 满足if 的条件  就执行哪一个条件后面的 {内容}
        // 前面满足则不考虑后面的内容
        let money = 10000
        // 变量为10000 条件为50000  小于50000 条件不满足 为假 false 
        if (money >= 50000){
            console.log('吃米其林三星');
        }   //条件不满足时 为false 执行else的内容
        else {
            console.log('我可以选择吃快餐');
        }
    </script>

多分支使用语法 :

    <script>
        let money = 10000
        // 变量为10000 条件为5000  大于5000 满足要求 为真 true 
        if (money >= 5000){
            console.log('吃米其林三星');
        }   //条件不满足时 为false 执行else的内容

        // 在if的基础上再加一个新条件 第一条件达成 则第二条件忽略 不执行
        // 反之 则看第二条件是否满足 满足则执行 不满足则都不执行
        else if(money >= 1500){
            console.log('回家吃饭');
        }
        // 当所有条件都不满足的时候 则执行以下else的代码
        else {
            console.log('医生说牙不好 得吃软 要去护士小姐姐家吃');
        }
    </script>

模拟用户输入两个学科的分数

    <script>
        // 用户输入两个学科的分数 (总分各自100) 根据两颗的总分 来排等级
        let num1 = +prompt('请输入你的语文分数')
        let num2 = +prompt('请输入你的数学分数')
        num3 = num1 + num2
        console.log(num3);
            // 模拟用户输入的值 大于100或者小于0
        if ((num1 > 100 || num1 < 0)||(num2 > 100 || num2 <0) ){
            alert('你的输入超过限制了。。。')
        }else if (num3 > 190) {
            alert('成绩优秀,保送北大')
            alert('北大欢迎你')
            alert('北大吧,也还行')
        }else if (num3 > 180) {
            alert('成绩良好 蓝翔技术学院欢迎你')
            alert('恭喜你入选蓝翔技术学院生命科学研究分院')
            alert('逗你玩呢')
            alert('打王者吗')
            alert('我不打')
            alert('我戒了')
        }else if (num3 > 170) {
            alert('成绩及格 蓝翔技术学院欢迎你')
            alert('恭喜你入选蓝翔量子力学和异种生物切片研究所')
        }else {
            alert('成绩重读')
            alert('你是我带过最差的学生')
            alert('试卷罚抄100遍')
            alert('今晚来我房间')
            alert('记得带上吃饭的家伙')
            alert('晚上打边炉吃宵夜')
        }
    </script>

三元表达式

其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式

符号:? 与 : 配合使用

语法:

1648310290595.png

一般用来取值

示例:

    <script>
        // 三元表达式
        // 语法 : 条件 ? 代码1 : 代码2
        // 例如:3大于5 为假  显示第二个代码条件 5
        console.log(3 > 5 ? 3 : 5)
        // 3小于5 为真 满足第一条件 页面弹出为真
        3 < 5 ? alert('真的') : alert('假的')
    </script>
    <script>
        // 三元表达式
        let num1 = 10
        let num2 = 9
        num1 > num2 ? console.log(num1) : console.log(num2);
        let num3;//就要等于 num1 和 num2 中 大的值
        num3 =(num1 > num2 ? num1 :num2);
    </script>

案例 :利用三元表达式 做出数字补0

需求:用户输入1个数,如果数字小于10,则前面进行补0, 比如 09 03 等 分析:

①:为后期页面显示时间做铺垫

②:利用三元运算符 补 0 计算

    <script>
        let num = +prompt('请输入你的第一个数字')
        // 确认条件 获取需求 低于10的数字前面补0 转字符串即可  三元表达式
        num >= 10 ? console.log(num) : console.log( '0' + num);
        // 或者 以下几种方式也可
        //1、 let  strNum = num < 10 ? '0' + num : num;
        //2、 if分支方式 
        let  strNum;
        if (num < 10){
            strNum = '0' + num;
        }else {
            strNum = num
        }
        console.log(strNum);
    </script>

案例 :判断2个数的最大值

需求:用户输入2个数,控制台输出最大的值 分析:

①:用户输入2个数

②:利用三元运算符输出最大值

    <script>
        let num1 = +prompt('请输入你的第一个数字')
        let num2 = +prompt('请输入你的第二个数字')
        num1 > num2 ? console.log(num1) : console.log(num2);
    </script>

案例 :简单计算器

需求:用户输入2个数字,然后输入 + - * / 任何一个,可以计算结果

分析:

①:用户输入数字

②:用户输入不同算术运算符,可以去执行不同的运算 (判断)

    <script>
        let num1 = +prompt('请输入你的第一个数字')
        let num2 = +prompt('请输入你的第二个数字')
        // 加减乘除的 符号不属于数值类型 不用转数值
        let num3 = prompt('请输入 "+" "-" "*" "/" 任意一种')
        // = :赋值 == :等于 输入== 号 或输入 === 全等于 更严谨
        if (num3 === '+') {
            console.log(num1 + num2);
        }else if (num3 ===  '-' ){
            console.log(num1 - num2);
        }else if (num3 ===  '*' ){
            console.log(num1 * num2);
        }else if (num3 ===  '/' ){
            console.log(num1 / num2);
        }else{
            alert('想啥呢 搞错了')
        }
    </script>