JS基础知识积累4

while结构

代码结构

while(条件 true/false){
     循环体:重复执行代码
     注意:循环变量自增
}

结构解析

判断条件是否成立,如果成立,执行循环体代码,重新判断条件是否成立
如果不成立,跳出循环,执行大括号之后的代码
条件语句可以是:

  1. 关系表达式
  2. 布尔类型的值
  3. 其他类型的值(都会转换成布尔类型)

do-while结构

代码结构

do{
  循环体:条件成立时重复执行的代码
} while(判断条件 true/false)

结构解析

先无条件执行一遍循环体,然后再判断,如果条件成立,就重复执行循环体代码
特点:先斩后奏

for循环结构

代码结构

for(语句1;语句2;语句3){
     循环体:条件成立时重复执行的代码
}

语句1:声明变量,来记录循环次数,叫做循环变量
语句2:判断条件(通常是条件表达式),他使用来控制循环的结果
语句3:通常都是循环变量的自增自减

结构分析

  1. 执行语句1(声明循环变量)
  2. 执行语句2,判断条件是否成立
    2. 1 如果成立 执行循环体代码
    2. 2 循环变量自增,重复执行步骤2,如果不成立,就跳出循环,执行大括号外面的代码

三种循环结构的使用场景

while:适用于循环次数不固定的场景
do-while:适用于循环次数不固定的场景,但是循环体代码必须无条件执行一次
for:适用于循环次数固定的场景

三种循环的注意点

for:

  1. 小括号里面的语句都可以省略,但是分号不能省略,三个语句都省略了,就变成了死循环。
  2. 循环变量的定义可以提到循环外
  3. 循环变量自增自减可以写在循环体外

while:

  1. 循环变量、循环条件 循环变量的自增自减都必须有
  2. 循环变量自增自减一定不能忘

do-while:

  1. 循环变量、循环条件 循环变量的自增自减都必须有
  2. 循环变量自增自减一定不能忘

箩筐思想求和

  1. 声明空箩筐
  2. 遍历萝卜增数
  3. 计算萝卜总数
// 1. 打印1-100之间所有整数的和
// 1. 声明空箩筐
        var sum = 0;
        // 	2. 遍历萝卜堆数
        for(var i = 1; i <= 100; i++) {
            // 	3. 计算萝卜总数
            sum += i;
        } 
        console.log(sum);



// 2. 打印1-100之间所有偶数的和
// 1. 声明空箩筐
        var sum = 0;
        // 	2. 遍历萝卜堆数
        for(var i = 0; i <= 100; i++) {
            // 	3. 计算萝卜总数
            if(i % 2 == 0) {
                sum += i;
            }
        } 
        console.log(sum);

打擂思想求极值

  1. 声明一个空擂主
  2. 遍历所有的挑战者
  3. 依次和擂主PK
// 1. 请用户输入5个数, 将最大的那个数打印出来
// 1. 声明一个空擂主
        var max = -Infinity;
        // 2. 遍历挑战者
        for(var i = 0; i < 5; i++) {
            var num = +prompt("请输入第" + (i + 1) + "个整数");
            // 3. 依次和擂主PK
            if(num > max) {
                max = num;
            }
        }
        console.log(max);

循环嵌套

循环嵌套:一个循环套着一个循环
循环嵌套中,我们要找到外层循环变量和内层循环变量之间的关系
外层循环决定行,内层循环决定列

 // 外层循环  决定多少行
        for(var i = 0; i < 4; i++) {
            // 内层循环
            for(var j = 0; j < 4; j++) {
                document.write("*&nbsp;");
            }
            document.write("</br>")
        }
    

break和continue关键字

break:

  1. 适用范围:只能用于switch语句和循环语句里
  2. 作用:switch里面 结束switch语句 ; 循环语句里面 结束当前循环语句

continue:

  1. 适用范围:只能用于循环语句
  2. 作用:结束当前这次循环,直接进行下一轮循环
  3. 注意:continue结束本次循环,后面的语句都不会再执行

经典例题

// 题目:判断101-200之间有多少个素数,并输出所有素数。
    // 1. 遍历101 到200之间的整数
    for(var i = 101; i <= 200; i++) {
        // 2. 声明一个变量保存这个数字的因数个数
        var num = 0;

         // 3. 遍历从1到这个数之间的所有整数, 看看是否能被这个数整数
         for(var j = 1; j <= i; j++) {
             if(i % j == 0) {
                 num++;
             }
         }
          // 4. 判断
          if(num == 2) {
              console.log(i);
              
          }
    }


 // 题目:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.编程 找出1000以内的所有完数。
    // 1. 遍历1到1000以内的整数
    for(var i = 1; i <= 1000; i++) {
        // 2. 声明一个变量保存所有因数之和
        var sum = 0;

        // 3. 遍历1到i之间的所有整数
        for(var j = 1; j < i; j++) {
            if(i % j == 0) {
                sum += j;
            }
        }

        if(i == sum) {
            console.log(i);
            
        }

    }




// 题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

    // 1. 输入两个整数
    var m = +prompt("请输入一个整数");
    var n = +prompt("请输入一个整数");

    // 2. 使用一个变量去保存较小的那个数
    var a = m > n ? n : m;

    // 2. 遍历, 取模判断
    for(var i = a; i > 1; i--) {
        if(m % i == 0 && n % i == 0) {
            var b = i;
            break;
        }
    }

    if(i == 1) {
        document.write("这两个数没有最大公约数");
        document.write("最小公倍数为" + (m * n));
    } else {
        document.write("最大公约数为" + b);
        document.write("最小公倍数为" + (m * n)/b);
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值