JS 中的 '鬼打墙'

103 阅读1分钟

循环语句

什么是循环语句

  • 帮助我们多次执行 某一个代码段

循环必须要有某些固定的内容组成

while 循环语句

  • 语法: while (条件) {要循环执行的代码}
  • 首次执行时就判断条件,条件不符合就不执行,且停止循环

do...while 循环语句

  • 语法: do {要循环执行的代码} while (条件)
  • 首次就执行,不需要判断条件, 执行完毕再去判断条件 , 条件不符合时不执行,且停止循环

for 循环语句

  • 语法: for (1. 声明变量(初始化条件); 2. 判断条件; 3. 改变自身;) {循环执行的代码}

for 循环案例

  1. 1000~2000内, 符合能整除4但不能整除100的数字
    var a = 0
    for (var i = 1000; i <= 2000; i++) {
        if (i % 4 == 0 && i % 100 != 0) {
            document.write(i + ' ')
            a++
            if (a == 4) {
                document.write('<br>')
                a = 0
            }
        }
    }
  1. 水仙花数
    for (var a = 100; a < 1000; a++){
        var baiw = parseInt(a / 100)
        var shiw = parseInt(a % 100 / 10)
        var gew = a % 10
        var sum = baiw ** 3 + shiw ** 3 + gew ** 3
        if (a == sum) {
            console.log(a)
        }
    }
  1. 求质数
    var num = prompt('请输入一个数字,判断其是否为质数')
    var count = 0
    for (i = 2; i < num; i++) {
        if (num % i == 0) {
            count = count + 1
        }
        count = 0 ? console.log('是质数') : console.log('不是质数') 
    }

流程控制语句

break 关键字的应用

  • 当我们想 满足某一个条件时, 停止整个循环, 可以使用 break
    • 例子: 早上我吃了5个包子, 吃完第三个吃饱了, 后续的第四个第五个就不吃了
for (var i = 1; i <= 5; i++) {
            console.log('吃了一个包子')
            if (i == 3) {
                console.log('吃饱了')
                break
            }
        }

continue 关键字的应用

  • 当我们想 满足某一个条件时, 停止当前本轮循环, 后续的循环正常执行
    • 例子: 早上买了 5个包子, 吃第三个的时候 第三个掉地上了 所以我不吃 第三个, 后续的 第四个第五个被我正常吃掉
      • break 与 continue 的共同点: 都可以打断循环
for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                console.log('这个包子掉地上了, 我不吃了')
                continue    // 只能确保后边的代码 不执行
            }
            console.log('我吃了一个包子')
        }

循环嵌套的书写

  • 两个循环嵌套在一起
for (var i = 0; i < 3; i++) {   // 外层循环
            console.log('外层循环第', i, '次执行')
            for (var k = 0; k < 3; k++) {   // 内层循环
                console.log('内层循环循环: ', k)  // 0 --- 1 --- 2
            }
        }
循环嵌套的小案例
  1.  ***
     ***
     ***
     for (var i = 1; i < 4; i++) {
         for (var k = 1; k < 4; k++) {
             document.write('*')
          }
         document.write('<br>')
      }
    
    *
    **
    ***
    for (var i = 1; i < 4; i++) {
        for (var k = 1; k <= i; k++) {
            document.write('*' + ' ')
         }
        document.write('<br>')
     }

作业

  1. 基于课堂案例 完成 99乘法表
for (var i = 1; i <= 9; i++) {
    for (var k = 1; k <= i; k++) {
        document.write(k + '*' + i + ' ' + '=' + ' ' + i * k)
    }
    document.write('<br>')
}
  1. 应用题: 苹果3元一个, 鸭梨2元一个, 桃子1元一个。现在想用200元正好买100个水果, 用 JS 列出所有购买方案
for (var a = 0; a <= 100; a++) {
        for (var b = 0; b <= 100; b++) {
            for (var c = 0; c <= 100; c++) {
                if (3 * a + 2 * b + 1 * c == 200 && a + b + c == 100) {
                    console.log('苹果购买' + a + '个', '梨购买' + b + '个', '桃子购买' + c + '个')
                }
            }
        }
    }