【JavaScript】if分支语句以及三目运算

if分支语句

if分支语句的语法结构

语法结构有三种(单分支,双分支,多分支)
重点内容1:必须熟悉布尔值真假情况(0,‘’,null,undefined,NaN,false)
重点内容2:if的条件可以是任意的表达式,但是结果一定是布尔值,系统自动调用Boolean方法进行处理。

1、单分支

语法: if(条件){满足条件(条件为真时)执行的语句块}

if (1) {
        console.log('语句会执行');
    }

    if ('饿了困了') {
        console.log('喝东鹏特饮');
    }

    if (false) {
        console.log('我也想出来转转');
    }

 /* isNaN函数会首先尝试将这个参数转换为数值,然后才会对
 转换后的结果是否是NaN进行判断。 */
    var num = prompt('请输入数字:');
    if (!isNaN(num)) { //是数字
        console.log('你输入的是数字:' + num);
    }

2、双分支

语法: f(条件){ 满足条件(条件为真)执行的语句块 } else { 不满足条件(条件为假)执行的语句块 }

var num = prompt('请输入数字:');
    if (!isNaN(num)) { //是数字
        alert('你输入的是数字:' + num);
    } else {
        alert('你输入的不是一个数字');
    

/* 案例:输出数字,判断数字是奇数还偶数(if语句的嵌套:if语句
里面存在if语句) */
    var num = prompt('请输入数字:'); //prompt里面输入的内容都是字符串格式的
    if (!isNaN(num)) { //是数字执行这里   isNaN将字符串格式的数字转换成数字

        // 继续判断数字是奇数还是偶数
        if (num % 2 === 0) { //偶数
            alert('你输入的数字' + num + '是偶数');
        } else { // 奇数
            alert('你输入的数字' + num + '是奇数');
        }
      } else { //不是数字执行这里
        alert('你输入的不是一个数字');
    }

3、多分支

**语法:**if (条件1) {条件1为真执行的语句块}
else if(条件2) {条件2为真执行的语句块}
else if(条件3) {条件3为真执行的语句块}
else if(条件4) {条件4为真执行的语句块}
else if(条件5) {条件5为真执行的语句块}

// 案例:输出数字,判断数字>0/<0/=0
    var num = prompt('请输入数字:');
    if (num === '') {
        console.log('你没有输入内容');
    } else if (num > 0) {
        console.log('是一个正数');
    } else if (num < 0) {
        console.log('是一个负数');
    } else if (num == 0) {
        console.log('是数字0');
    } else {
        console.log('输入有误');
    }

if分支语句的应用

案例1: 使用 prompt 函数 接收一个年份 判断输入的年份 是否是闰年 将结果输出到控制台, 闰年条件:能够被4整除,同时不能够被100整除,或者能被400整除。

if (year !== '') { //最大的可能不为空
        if (!isNaN(year)) { //判断是数字,
            if (year >= 1000 && year <= 9999) { //同时是4位的数字
                if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) { //是否闰年
                    alert('闰年');
                } else {
                    alert('非闰年');
                }
            } else {
                alert('你输入的数字不在范围内');
            }

        } else { //输入的内容不满足条件
            alert('输入不是数字,请重新输入');
        }
    } else {
        alert('请输入')
    }

案例1拓展: 合并条件

if (year !== '' && !isNaN(year) && (year >= 1000 && year <= 9999) && (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0)) {
        alert('闰年')
    } else {
        alert('你可能没有输入,可能不是数字,可能不在范围内,可能不是闰年');
    }

案例2: 根据公式(身高-108)*2 = 体重,可以有10斤左右的浮动,来观察测试者体重是否标准(身高:cm)
// 思路:
// 结果:标准,偏胖,偏瘦(三个条件)
// 偏胖:大于 (身高-108) * 2 + 10
// 偏瘦:小于 (身高-108) * 2 - 10
// 标准:区间

 var height = prompt('请输入身高cm:');
    var weight = prompt('请输入体重斤');

    var maxWeight = (height - 108) * 2 + 10;
    var minWeight = (height - 108) * 2 - 10;

    if (weight > maxWeight) {
        alert('偏胖');
    } else if (weight <= maxWeight && weight >= minWeight) { //标准,区间
        alert('标准身材');
    } else if (weight < minWeight) {
        alert('偏瘦');
    } else {
        alert('输入有误');
    }

总结if的特点

1.if的三种结构(单分支,双分支,多分支)
2.if的条件可以是任意的表达式,但是结果一定是布尔值,系统自动调用Boolean方法对表达式进行求值。
3.if语句满足一个分支,立刻结束
4.尽量将最大的可能给if语句,如果满足if,else短路操作(代码不执行),同时else可以省略。
5.合并条件,提示错误或者其他信息的时候就不够准确。嵌套使用,提升用户体验,多条件使用,减少代码。

// 解析
//     输入数字4,执行四次条件
//     输入数字3,执行三次条件
//     输入数字1,执行一次条件
//     输入数字5,执行五次条件
//     一旦找到目标,立刻结束
    var num = +prompt('请输入一个数字:');
    if (num === 1) {
        console.log(1);
    } else if (num === 2) {
        console.log(2);
    } else if (num === 3) {
        console.log(3);
    } else if (num === 4) {
        console.log(4);
    } else {
        console.log('其他情况');
    }

三目运算符

语法:条件 ? 满足条件执行的一条语句 : 不满足条件的一条语句
1.三元运算符,就是用两个符号(?:)组成一个语句
2.三元运算符只是对if else语句的一个简写形式
3.三元运算符可以嵌套使用,而且具有返回值,整个运算符

// 例子:满了22岁,可以结婚,否则继续单身
//if语句
var age = 25;
    if (age > 22) {
        console.log('可以结婚');
    } else {
        console.log('继续单身');
    }
//三目运算
var age = 25;
    age > 22 ? console.log('可以结婚') : console.log('继续单身');
    console.log(age > 22 ? '可以结婚' : '继续单身');

案例1 判断奇偶:

var num = 10;
    var result = num % 2 === 0 ? '偶数' : '奇数';
    console.log(result);

案例2 求下面三个数字的最大值 - 唯一的优势:

var a = 10;
    var b = 20;
    var c = 7;
    var max = a > b ? (a > c ? a : c) : (b > c ? b : c);
	 	console.log(max);
    // 思路
    // 先比较a > b  如果满足,比较a和c即可
    // 如果不满足,b > a,比较b和c即可
   

运算符优先级

// 1.推荐的方式:利用添加括号解决,有括号先算括号。
// 2.常见的运算符优先级
()
++  -- 
* / %
+ - 
> < >= <=  == != === !==
&&  || 
?:
= +=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芒果Cake

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值