js学习第三天

switch 结构

完整结构

         switch (表达式) {

            case 值:  语句;

            break;

            case 值:  语句;

            break;

            case 值:  语句;

            break;

            default:语句;

            break

}

执行过程

         1 先计算表达式值

         2 去找对应匹配(严格等于)的case,找到的话,执行该case冒号后面的语句,遇到break结束或遇到}

           找不到匹配的case,则执行default,遇到break结束或遇到}

 switch (vegetabel) {
        case '西红柿鸡蛋':
          console.log('西红柿鸡蛋为5元')
          break
        case '土豆丝':
          console.log('土豆丝为4元')
          break
        case '青菜':
          console.log('青菜为3元')
          break
        case '西兰花':
          console.log('西兰花为6元')
          break
        default:
          console.log('抱歉,本店专供素菜')
          break
      }

例如:输入一个数字0-6 ,0表示周日, 1 表示星期一 ... 

const num = +prompt('请输入一个数字')
      switch (num) {
        case 0:
          alert('星期日')
          break
        case 1:
          alert('星期一')
          break
        case 2:
          alert('星期二')
          break
        case 3:
          alert('星期三')
          break
        case 4:
          alert('星期四')
          break
        case 5:
          alert('星期五')
          break
        case 6:
          alert('星期六')
          break
        default:
          alert('输入错误')
          break
      }

while 循环

结构

while(条件) {

          条件成立时候执行的逻辑

        }

/* let i = 3
      while (i <= 5) {
        console.log(i)
        i++ // 一定要加 为了条件为假
      } */

练习:

 1 在网页中输出1-10

let j = 1
      while (j <= 100) {
          document.write(`${j}<br/>`)
          j++
       }

2  计算1+3+5+...+99

  let sum = 0 // 存储最终的结果
      let k = 1
      while (k < 100) {
        sum = sum + k
        k += 2
      } 
     console.log(sum)

 3 计算1-100所有是5的倍数的和

   let sum = 0
      let k = 1
      while (k <= 100) {
        if (k % 5 === 0) {
          sum = sum + k
        }
        k++
      }
      console.log(sum) 

 4 计算5的积乘 1*2*3*4*5

  let sum = 1
      let k = 1
      while (k <= 5) {
        sum = sum * k
        k++
      }
      console.log(sum) */ /* let sum = 1
      let k = 1
      while (k <= 5) {
        sum = sum * k
        k++
      }
      console.log(sum) 

5 计算1-2+3-4+5-6+7+...-100

提示:我们可以转化为 1*1+2*(-1)+3*1+4*(-1)+...的形式更加方便

 let sum = 0
      let i = 1
      let flag = 1
      while (i <= 100) {
        sum = sum + i * flag
        flag = -flag
        i++
      }
      console.log(sum) 

 6 打印

         🍎🍎🍎🍎🍎

         🍎🍎🍎🍎🍎

         🍎🍎🍎🍎🍎

         🍎🍎🍎🍎🍎

         🍎🍎🍎🍎🍎

思路:每行先打印一个苹果,打印五次出现五个苹果后为一行,然后再打印第二行,以此类推。

let i = 1
       while (i <= 5) {
        
         let j = 1
         while (j <= 5) {
          document.write('🍎')
           j++
         }
         document.write('<br/>')
         i++
       }

7.打印

         🍎

         🍎🍎

         🍎🍎🍎

         🍎🍎🍎🍎

         🍎🍎🍎🍎🍎

提示:每行的苹果数量等于行数。

   let i = 1
      while (i <= 5) {
        // 打印这行苹果数
        let j = 1
        while (j <= i) {
          document.write('🍎')
          j++
        }
        document.write('<br/>')
        i++
      } 

7.打印 

           *

          ***

         *****

        *******

       *********    

思路: 打印5行,每行打印若干个空格 再打印若干个* 

 let i = 1 // 行数
      while (i <= 5) {
        //打印若干个空格 i=1 4个空格 i=2 3个空格
        let j = 1
        while (j <= 5 - i) {
          document.write('&ensp;')
          j++
        }
        // 再打印若干个*
        // i=1 1个* i=2 3个* i=3 5个*
        let k = 1
        while (k <= 2 * i - 1) {
          document.write('*')
          k++
        }
        document.write('<br/>')
        i++
      }

do-while

语法

        do {

          循环体

        }while(条件)

        执行过程

例子:

 let i = 3
      do {
        console.log(i)
        i++
      } while (i <= 5) 

 do-while与while区别:

        1.do-while至少会执行循环体一次

        2.while用的多点,do-while用的比较少,在特定场景会使用

练习:

1.打印 

           *

          ***

         *****

        *******

       *********    

let i = 1 // 行数
      do {
        //打印若干个空格 i=1 4个空格 i=2 3个空格
        let j = 1
        while (j <= 5 - i) {
          document.write('&ensp;')
          j++
        }
        // 再打印若干个*
        // i=1 1个* i=2 3个* i=3 5个*
        let k = 1
        while (k <= 2 * i - 1) {
          document.write('*')
          k++
        }
        document.write('<br/>')
        i++
      } while (i <= 5)

for 循环

语法

for(表达式 1;表达式2;表达式3) {

            循环体

        }

注:

         表达式 1 -> 变量初始化

         表达式2 -> 循环条件

         表达式3 -> 改变循环变量

执行过程:1 .先执行表达式1

                  2 .执行表达式2,表2的结果是true,则执行循环体 3, 循环体执行完毕, 执行表达式3,然                         后再回到第二步 

练习:

在页面输出1-10

  for (let i = 1; i <= 10; i++) {
         document.write(i + '<br />')
       }

 注意:

表达2缺省 表示永远为真,此时就是无限循环-死循环

 for (;;) {
         console.log('我爱中国')
       }

练习:

提示做我女朋友 知道答应才不追问

let answer
      for (; answer !== 'yes'; ) {
        answer = prompt('答应做我女朋友?')
      }

continue

continue 结束本次循环下一次继续

练习:

打印1-15 ,但是5的倍数不打印

for (let i = 1; i <= 15; i++) {
        if (i % 5 === 0) {
          continue
        }
        console.log(i)
      }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值