05-判断--highgh的博客--JavaScript学习笔记

这篇博客详细介绍了JavaScript中的条件语句,包括if语句的三种语法,else if和switch的用法,以及三元运算符的运用。通过实例解析了如何判断水仙花数、计算游乐园门票价格,并探讨了switch语句的执行流程和break的重要性。此外,还提到了三元运算符在简化条件分支时的作用。
摘要由CSDN通过智能技术生成

判断

条件语句

1) if语句的基本使用

2) if else if多条件分支

3)if语句算法题

4) switch语句

5)三元运算符

if语句

if语句是最简单的条件语句,也称选择语句。

比如我考试成绩好,父母就会给我们奖励。

语法一

if(测试条件) {
	//代码块
    //满足测试条件为true时执行这里
}

例子

let age = Number(prompt("请输入您的年龄"));//点击确定,返回输入内容 

if (age < 18) {
    alert("您还没有成年,禁止入内")
} 

语法二

结合else一起使用,表示如果.....就.......否则....

比如我考试成绩非常好,父母就会给我们奖励,否则就会给我惩罚。

if( 测试条件 ){
    //语句块1
   //当测试条件为真,执行这里
}else{
    //语句块2
    //当测试条件为假,执行这里
}

例子1

用户输入数字 大于18已经成年 小于18未成年

let age = Number(prompt("请输入您的年龄")); //点击确定,返回输入内容 
							   			//点击取消,返回null
if (age < 18) {
    alert("您还没有成年")
} else{
    alert("您已成年,请提供您的身份证号")
}

例子2

用户输入一个数字,如果这个数字是偶数,则弹出对话框 , 显示“偶数”,否则弹出对话框显示“奇数”

//用户输入数字 判断数字是偶数还是奇数
let num = Number(prompt("请输入一个数字")); 

//书写if语句进行判断
if (num % 2 === 0) {
    alert("偶数");
} else {
    alert("奇数");
}

if语句执行流程图
在这里插入图片描述

例子3

//让用户输入年龄
let age = Number(prompt("请输入年龄")); 

//判断
if (age >= 18 && age <= 70) {
    alert("可以考驾照");
} else {
    alert("年龄不符合要求");
}

//一定会选择其中一条路进行选择

看清楚哪些语句是If语句体中的语句

let num = Number(prompt("请输入一个整数"));

if(num > 6){
    alert("这个数字大于6");
}

if(num % 2 === 0){
    alert("这个数字是偶数");
}

alert("再见");

//会进行两步判断  但是一定会弹出alert("再见")

如果if语句体中只有一行语句,则可以省略大括号和换行

//让用户输入年龄
let num = Number(prompt("请输入一个整数"));

if (num > 6) alert("这个数字大于6");

if (num % 2 === 0) alert("这个数字是偶数");

alert("再见");

语法三

else if()条件分支“暗含”不符合之前所有条件,要深刻理解什么叫“否则如果

if( 测试条件1 ){
	//当测试条件是1为true时执行
}else if( 测试条件2 ){
	//当测试条件是1为false时 测试条件2为true时执行
}else if( 测试条件3 ){
	//当测试条件是2为false时 测试条件3为true时执行
}
......
else{
	//当所有测试表达式都为false时执行
}

例子1

输入成绩 判断是什么水平

let score = Number(prompt("请输入你的考试成绩"));

if (score < 60) {
    alert("不及格");
} else if (score < 80) {
    alert("及格"); //尽管这里条件满足 也不会走到  只会从上往下  选择一条分支语句
} else if (score < 100) {
    alert("优秀"); 
} else if (score < 120) {
    alert("逆天"); 
} else {
    alert("我什么都不知道");
}

例子2

BMI指数(Body Mass Index,身体质量指数)是用体重(以公斤为单位)除以身高(以米为单

位)的平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的标准。
在这里插入图片描述

//要求用户输入体重
let weight = Number(prompt("请输入你的体重,以公斤为单位"));

//要求用户输入身高
let height = Number(prompt("请输入你的身高,以米为单位"));

//计算BMI身体指数
let bmi = weight / Math.pow(height,2);

//弹出BMI指数
alert("您的BMI指数是" + bmi);

//分档
if(bmi < 18.5){
    alert("偏瘦");
}else if(bmi < 24){
    alert("正常");
}else if(bmi < 28){
    alert("肥胖");
}else if(bmi < 32){
    alert("更肥胖")
}else{
    alert("非常肥胖")
}

if语句算法题

判断水仙花数

水仙花数是这样的一个3位数:它的每个数位的数字的立方和等于它本身。

153 13 + 53 + 33 =153 是水仙花数

154 13 + 53 + 43 =190 不是水仙花数

n — 对它进行拆位处理

方法1

数学方法

153    --->   1     5   3

//百位是原数字除以100取整
//十位是原数字除以10取整,再与10求模
//个位是原数字与10求模
方法2

字符串方法

//直接将原数字变为字符串,然后使用charAt()方法得到每个数位的值
<script>
//要求用户输入一个三位数
let n = Number(prompt("请输入一个三位数"));

// 对用户输入的数值,进行合法性的验证

if (!isNaN(n) && n >= 100 && n <= 999) {
    //当用户输入的数字是合法
    //数学方法
    // 百位
    console.log(Math.floor(n / 100));
    //十位
    console.log(Math.floor(n / 10) % 10);
    //个位
    console.log(n % 10);
} else {
    //输入不合法
    alert("您输入的数字不合法");
}
</script>
 <script>
      //要求用户输入一个三位数
      let n = Number(prompt("请输入一个三位数"));

     // 对用户输入的数值,进行合法性的验证

     if (!isNaN(n) && n >= 100 && n <= 999) {
         //当用户输入的数字是合法
         //数学方法
         // 百位
         let a = Math.floor(n / 100);

         //十位

         let b = Math.floor(n / 10) % 10;

         //个位
         let c = n % 10;

         //根据水仙花数的条件去进行判断
         if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == n) {
             alert(n + "是水仙花数");
         }else{
             alert(n + "不是水仙花数");
         }
     } else {
         //输入不合法
         alert("您输入的数字不合法");
     }
</script>

使用方法二

 <script>
      //要求用户输入一个三位数
      let n = Number(prompt("请输入一个三位数"));

      // 对用户输入的数值,进行合法性的验证

      if (!isNaN(n) && n >= 100 && n <= 999) {
        //当用户输入的数字是合法
          //字符串方法

          //把数字n变为字符串
          let nStr = n.toString();

          // 百位
          let a = Number(nStr.charAt(2));

          //十位
          let b = Number(nStr.charAt(1));

          //个位
          let c = Number(nStr.charAt(0));

          console.log(a , b , c);

          //根据水仙花数的条件去进行判断
          if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == n) {
              alert(n + "是水仙花数");
          } else {
              alert(n + "不是水仙花数");
          }
      } else {
          //输入不合法
          alert("您输入的数字不合法");
      }
</script>
游乐园门票计算

某游乐园的门票价格如下表所示。请用户输入年龄和星期几,弹出对话框显示门票价格。星期几用阿拉伯数字0、1、2、3、4、5、6表示,其中0表示周日。

在这里插入图片描述

if语句嵌套

在这里插入图片描述

<script>
    //让用户输入星期几
    let week = Number(prompt("请输入今天星期几"));

    //让用户输入年龄
    let age = Number(prompt("请输入您的年龄"));

    //让星期几作为大前提条件
    if (week == 0 || week == 6) {
        //周末
        if (age >= 10) {
            alert("票价是" + 500);
        } else {
            alert("票价是" + 210);
        }
    } else if (week >= 0 && week <= 6) {
        //平日
        if (age >= 10) {
            alert("票价是" + 300);
        } else {
            alert("票价是" + 140);
        }
    } else {
        alert("不合法星期");
    }
</script>
<script>
//让用户输入年龄
let age = Number(prompt("请输入您的年龄"));

//让用户输入星期几
let week = Number(prompt("请输入今天星期几"));

// 让年龄成为大前提
if(age >= 10){
    if(week == 0 || week == 6){
        alert("票价是" + 500);
    }else{
        alert("票价是" + 300);
    }
}else if(age >= 0){
    if(week == 0 || week ==6){
        alert("票价是" + 210);
    }else{
        alert("票价是" + 140);
    }
}else{
    alert("年龄不合法")
}
</script>

switch

除if语句之外,JS还提供了另外─种选择语句: switc语句。

switch语句的用途:当一个变量被分类讨论的情形。

语法:

switch( 表达式 ) {
     case n:
        代码块
        break;
     case m:
        代码块
        break;
     default:
        默认代码块
} 

要求用户输入一个1~12中的任意一个数字,显示这个月份的天数。

<script>
    let month = Number(prompt("请输入月份"));
    if(month ==1 || month == 3 || month == 5 || month == 7 ||month == 8 || month == 10 || 		month == 12){
        alert('这个月有31天');
    }else if(month == 4 || month == 6 || month == 9 || month == 11){
        alert('这个月有30天');
    }else if(month == 2){
        //闰年2月有29天
        alert('这个月有28天或29天'); 
    }else {
        alert('请输入正确的月份');
    }
</script>

使用switch语句

<script>
    let month = Number(prompt("请输入月份"));
	
    
    //在switch()的圆括号中一般是一个变量名,这个变量将被分类讨论。
    switch(month){
            
  //case表示“情况”,它后面没有圆括号,直接跟一个值。程序会依次将case后面的值与switch因括号中的值进    行全等比对,如果比对相同,则执行这条case冒号后面的语句。
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            //多条case可以共用同一个语句体。
            alert("这个月有31天");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            alert("这个月有30天");
            break;
        case 2:
            alert("这个月有28天或者29天");
            break;
        default:
           	//default表示默认情况。
            //当所有的case值都不匹配的时候, 那么就执行default选项里面的语句
            alert("请输入正确的月份")
    }
</script>

判断是否是闰年

<script>
    //让用户输入一个年份
    let year = Number(prompt("请输入一个年份"))

    //让用户输入一个月份
    let month = Number(prompt("请输入月份"));

    //分类讨论
    switch (month) {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            alert("这个月有31天");
            break;
        case 4:
        case 6:
        case 9:
        case 11:
            alert("这个月有30天");
            break;
        case 2:
            //根据用户输入的year判断当年是不是闰年
            if(year % 4 == 0 && year % 100 != 0 || year % 100 == 0 && year % 400 == 0){
                alert("这个月有29天");
            }else{
                alert("这个月有28天");
            }
            break;
        default:
            alert("请输入正确的月份!");
    }
</script>

break语句

switch语句并不像if语句那样当执行了某一个分支之后会自动跳出if语句体,程序员必须主动调用break来跳出switch语句体。

如果不书写break,则后面的所有case都将被视为匹配,直到遇见break。

<script>
    let a = 1;

switch(a){
    case 1:
        console.log("A");
    case 2:
        console.log("B");
    case 3:
        console.log("C");
        break;
    default:
        console.log("D");
}
    //输出A B C
</script>
<script>
    let a = "小甘";

    if (a == "小甘") {
        alert( a+"好优秀啊");
    } else if ( a == "小于") {
        alert( a+"是我朋友");
    } else if (a == "宝贝") {
        alert(a+"太可爱了");
    } else if (a == "小hi") {
        alert(a+"够哥们");
    } else {
        alert("who are you");
    }
    //switch 语句就是为了让开发人员免于编写这样的代码:
</script>
<script>
    switch (a) {
    case "小甘":
        alert(a + "太优秀了");
        break;
    case "小于":
        alert(a + "是我朋友");
        break;
    case "宝贝":
        alert(a + "太可爱了");
        break;
    case "小hi":
        alert(a + "够哥们");
        break;
    default:
        alert("who are you");
    }
</script>

案例:判断当前是星期几

语法: new Date().getDay()

功能:获取新返回值: number (0-6)

<script>
    let week = new Date().getDay();

    switch (week) { //0-6
        case 0:
            document.write("今天是星期日");
            break; //退出
        case 1:
            document.write("今天是星期一");
            break;
        case 2:
            document.write("今天是星期二");
            break;
        case 3:
            document.write("今天是星期三");
            break;
        case 4:
            document.write("今天是星期四");
            break;
        case 5:
            document.write("今天是星期五");
            break;
        case 6:
            document.write("今天是星期六");
            break;
    }
</script>

三元运算符

JavaScript中提供了一种叫做“三元运算”的语法形式,让我们可以方便地实现选择

条件表达式 ? 表达式1 : 表达式2

问号前面是判断的条件,问号后面用冒号隔开两个表达式。

当条件表达式为时调用表达式1,为时调用表达式2。

三元运算符的用途:

如果操作语句比较简单,建议用三目运算替代 if…else…

根据某个条件是否成立,在两个不同值中选择变量的值

<script>
    let age = Number(prompt("请输入年龄"));

    // 三元运算
    let type = age >= 18 ? "成年人" : "未成年"
    alert(type)
    
    
    //如果使用if语句
    let type;
    if(age >= 18){
        type = "成年人";
    }else{
        type = "未成年人";
    }
    alert(type)
</script>
<script>
    let a = 10;
    let b = 20;
    if( a > b ){
        alert( "a大于b" )
    }else{
        alert( "b大于a" )
    }
    
    
    //使用三元运算符
    let a = 10;
    let b = 20;
    alert( a > b ? "a大于b""b大于a" );
</script>

简单的if语句

<script>
    if (2 < 3){
        console.log(1);
    }
    
    //使用三元运算符
    2<3 ? console.log(1) : ""; //后面写一个无关乎结果的值
    
    //更好的方式是使用逻辑运算符
    2<3 && console.log(1); //条件为真执行后面的代码
</script>

当if语句里面有多条执行语句的时候

<script>
    let a = 10;
    let b = 20;
    if (a > b) {
        console.log(1);
        console.log(2);
    } else {
        console.log(3);
        console.log(4);
    }
    //使用三元运算符
    
    a > b ?(
        console.log(1),
        console.log(2) 
    ) : (
        console.log(3),
        console.log(4)
    )
    // 使用()将代码块括起来  任何时候不建议这样写 可读性差
</script>

总结

条件分支的语句一共有3种,

if……else if…… (必须立即想到!这个东西无敌)

switch case (某一方面很擅长,体现在了代码的清晰度上)

三元运算符 (赋值的时候,根据条件有两个可能的值,马上想到三元运算符)

&&短路写法

//使用三元运算符

2<3 ? console.log(1) : ""; //后面写一个无关乎结果的值
//更好的方式是使用逻辑运算符
  2<3 && console.log(1); //条件为真执行后面的代码
```

当if语句里面有多条执行语句的时候

<script>
    let a = 10;
    let b = 20;
    if (a > b) {
        console.log(1);
        console.log(2);
    } else {
        console.log(3);
        console.log(4);
    }
    //使用三元运算符
    
    a > b ?(
        console.log(1),
        console.log(2) 
    ) : (
        console.log(3),
        console.log(4)
    )
    // 使用()将代码块括起来  任何时候不建议这样写 可读性差
</script>

总结

条件分支的语句一共有3种,

if……else if…… (必须立即想到!这个东西无敌)

switch case (某一方面很擅长,体现在了代码的清晰度上)

三元运算符 (赋值的时候,根据条件有两个可能的值,马上想到三元运算符)

&&短路写法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只情绪稳定的老虎

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

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

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

打赏作者

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

抵扣说明:

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

余额充值