JS基础之循环语句

循环语句

  • 通过循环语句可以使指定代码反复执行
  • JS中一共三种循环语句
    while语句
    do-while语句
    for语句
  • while语句
    • 语法:
      while(条件表达式){
      语句…
      }
    • 执行流程:
      while语句在执行时,会先对表达式进行判断
      如果结果为true,则执行循环体,执行完毕,继续判断
      如果结果为true,则再次执行循环体,执行完毕,继续判断,如此重复
      直到表达式结果为false时,循环结束
      通常编写一个循环,要有三个条件
  1. 初始化表达式(初始化变量)
  2. 条件表达式 (设置循环运行条件)
  3. 更新表达式 (修改初始化变量)
  • do-while循环
    • 语法:
      do{
      语句…
      }while(条件表达式)
    • 执行顺序
      do-while 语句在执行时,会先执行do后的循环体
      执行完毕后,会对while后的条件表达式进行判断
      如果为false,则循环终止
      如果为true,则继续执行循环体,以此类推
      和while区别:
      while语句先判读再执行
      do-while先执行在判断
      实质区别
      do-while语句可以确保执行一次

- for循环

  • for循环和while无本质区别,都是用来反复执行代码,不同是语法结构
  • 语法:
    for(①初始化表达式;②条件表达式;④更新表达式){
    ③语句…
    }
  • 执行流程
    ①执行初始化表达式,初始化变量
    ②执行条件表达式,判断循环是否执行(true执行,false终止)
    ③判断结果为true,则执行循环体
    ④执行更新表达式,对初始化变量进行修改
    ⑤重复②,直到判断为false为止
  • for循环中的三个表达式都可以省略
  • 使用let在for循环的()中声明的变量是局部作用域,只能在for循环内部访问
    使用var在for循环的()中声明的变量可以在for循环的外部访问
  • 创建死循环的方式:
    while(1){}
    for(;😉{}

- break

  • break用来终止switch和循环语句
  • break执行后,当前switch和循环会立刻停止
  • break会终止离他最近的循环

continue

  • continue用来跳过当次循环

求水仙花数

<script>
  // 第一种方法
    for (let i = 100; i < 1000; i++) {
      let a = parseInt(i / 100)
      let b = parseInt(i % 10)
      let c = parseInt(i / 10 % 10)
      if (i === a * a * a + b * b * b + c * c * c) {
        console.log(i)
      }
  }

// 第二种方法
  for (let i = 100; i < 1000; i++) {
    let str1 = String(i)   //转换为字符串,通过索引
    if (str1[0] ** 3 + str1[1] ** 3 + str1[2] ** 3 === i) {
      console.log(i)
    }
  }

</script>

检查从键盘输入的数是不是质数

<script>
  let num = +prompt("请输入一个大于1的整数;")
  let flag = true
  for (let i = 2; i < num; i++) {
    if (num % i === 0) {
      flag = false
    }

  }
  if (flag) {
    alert(`${num}是质数`)
  } else {
    alert(`${num}不是质数`)
  }
</script>

输出100以内所有质数

<script>
  for (let i = 2; i < 100; i++) {
    let flag = true
    for (let j = 2; j < i; j++) {
      if (i % j === 0) {
        flag = false
      }
    }
    if (flag) {
      console.log(i)
    }
  }
</script>

<script>
  console.time('csy')
  for (let i = 2; i < 100; i++) {
    let flag = true
    for (let j = 2; j <= i ** .5; j++) {
      if (i % j === 0) {
        flag = false
        break
      }
    }
    if (flag) {
      console.log(i)
    }
  }
  console.timeEnd('csy')
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值