JavaScript篇.day02-分支结构(if,switch)

本文详细介绍了编程中的分支结构,包括if语句的各种形式及其使用场景,以及switch语句的语法和特性,并通过三个实例:判断闰年、判断水仙花数和计算一年中的第几天,加深了读者对分支结构的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.分支结构

2.例题

(1)判断闰年(if)

(2)水仙花数(if)

(3)判断是一年中的第几天(switch)


1.分支结构

分支结构的执行是依据一定的条件(逻辑判断或关系比较等条件)来选择执行路径

分支结构有if选择分支和switch条件分支, 基本语法如下:

// 分支结构 
      /* 选择结构if 语句
        第一种语法:
              if(执行的条件){
                语句块。
              }
          如果执行条件是真的,就执行语句块。否则就跳过
        

        第二种语法:
              if(执行的条件){
                语句块1
              } else {
                语句块2
              }
          如果执行条件是真的,就执行语句块1。否则执行语句块2
          
          
        第三种:多条件分支结构 if---else if....else if...else 
                if(执行的条件1){
                  语句块1
                } else if(执行的条件2) {
                    语句块2
                } else if(执行的条件3){
                    语句块3
                }.........
                else {
                    语句块n;
                }
        */
       
       // 条件分支语句
          // break匹配 对应case成功后, 跳出switch语句
          // default 当前边所有的case都没有匹配时,走default内容   如果将default放在最前边,应加break, 通常放在末尾
          // 选项输出内容相同时, 可合并
      /*      switch(已知条件){
                case 选项1 :
                  输出1
                  break 
                case 选项2 : 
                  输出2
                  break
                case 选项3:
                case 选项4:
                  输出3
                ...
                default:
                  输出4
              } 
        */

 break 和 default比较:

  • break匹配 对应case成功后, 跳出switch语句
  • default 当前边所有的case都没有匹配时,走default内容   如果将default放在最前边,应加break, 通常放在末尾

2.例题

(1)判断闰年(if)

 // 判断闰年,满足条件之一: (1)能被4整除同时不能被100整除; (2)能被400整除
      var year = window.prompt('请输入一个年份: ')   //当未输入内容,直接点击确定,year的值为''空字符串, 参与减法运算时,发生隐式转换为0, 故直接进入下边的语句中继续运行
      //  判断是否输入内容
      if (year === null) {    //点取消时, 返回null
        alert('您还未输入年份呢!!!')
      } else {
        // 将prompt接收的字符串转换为数字
        var yearNum = year - 0       
        // 判断是否为数字型
        if (typeof yearNum === 'number') {
          if (
            (yearNum % 4 === 0 && yearNum % 100 != 0) ||
            yearNum % 400 === 0
          ) {
            alert('您输入的年份' + year + '是闰年!')
          } else {
            alert('您输入的年份' + year + '是平年!')
          }
        } else {
          alert('您输入的不是年份!!!')
        }
      }

(2)水仙花数(if)

      //判断一个给定的三位数是否为水仙花数。三位水仙花数,即其个位、十位、百位数字的立方和等于该数本身
      /* 算法: 
          1) 判断是否输入内容
          2) 判断是否输入的是数字
          3) 判断输入的是否为三位数
          4) 分别取出个,十,百位
          5) 计算出立方和
          6) 立方和等于本身,输出yes, 否则输出no

      */
      var num = window.prompt('请输入一个三位数: ')
      // 1) 判断是否输入内容
      if (num === '') {   
        alert('您输入为空, 请重新输入!')
      } else {
        var newNum = num - 0
        if(typeof newNum === 'number'){
          if(newNum >= 100 && newNum <= 999){
            // 个位   
            var oNum = newNum % 10
            // 十位   
            var tNum = parseInt(( newNum / 10 ) % 10)
            // 百位
            var hNum = parseInt(newNum / 100)
            var sum = oNum*oNum*oNum + tNum*tNum*tNum + hNum*hNum*hNum 
            if( sum === newNum){
              alert('您输入的是水仙花数!!!')
            }else{
              alert('您输入的不是水仙花数!!!!!!!')
            }
          }else{
            alert('您输入的数字超出范围啦~~~')
          }
        }
      }

(3)判断是一年中的第几天(switch)

// 判断这一天是该年中的第几天
      // 算法: 1月day日,则为day日, 2月day日,则用1月的总天数31+day, 一次类推 (其中3月day日需判断2月是否为闰月)   匹配到继续执行,故无需break
      var year = window.prompt('请输入年份: ') - 0
      var month = window.prompt('请输入月份: ') - 0
      var day = window.prompt('请输入日:') - 0
      var sum = day
      switch (month) {
        case 12:
          sum += 30
        case 11:
          sum += 31
        case 10:
          sum += 30
        case 9:
          sum += 31
        case 8:
          sum += 31
        case 7:
          sum += 30
        case 6:
          sum += 31
        case 5:
          sum += 30
        case 4:
          sum += 31
        case 3:
          if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
            sum += 29
          } else {
            sum += 28
          }
        case 2:
          sum += 31
        case 1:
          alert(month + '月' + day + '日是' + year + '年中的第' + sum + '天')
          break
      }

PreviousNotes:

https://mp.youkuaiyun.com/mp_blog/creation/editor/125005868

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mteee.

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

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

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

打赏作者

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

抵扣说明:

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

余额充值