JS for循环、 JS while循环 、JS do...while循环、 JS while与do...while 的区别 、JS break

1.for循环

  • 循环:重复做一件事。
  • 特点:给定一个条件,条件成立时,重复执行某段代码,直到条件不成立。
  • 循环成立的条件:
  • 初始值,作为循环的开始。
  • 条件判断,决定要不要继续执行循环。
  • 执行重复的代码。
  • .改变初始值,为了让循环有结束。
  • 语法结构:
  • for (var i = 0; i < 要执行的次数; i++) {
    要重复执行的代码
    };
  • 执行顺序:
  • 变量的声明 var i = 初始值(一般情况是0);
  • 执行条件的判断 i < 要执行的次数
  • 条件成立,则执行{}中的代码。执行完成后,再执行 i++;
  • 条件不成立,循环直接结束。

例:

    for (var i = 0; i < 5; i++) {
      document.write("<p>我错了,我也不知道我哪错了</p>");
    };

在这里插入图片描述

2.while循环

  • 语法:
  • while(条件判断){
     要执行的语句。
      …
    };
  • 【注意】
  • while()可以书写任意的表达式,表达式的结果都会自动转布尔值。
  • 不能让循环条件一直成立,会造成死循环。

例:

    //1.需要有一个初始值,作为循环的开始。
    var i = 1;
    //2.条件判断,成立则执行循环。
    while (i < 6) {
      //3.要重复执行的代码
      document.write("<p>我错了,我也不知道我哪错了</p>" + i);
      //4.改变初始值
      i++;
    }

在这里插入图片描述

3.do…while循环

  • 语法:
  • do {
      重复执行的代码;
    } while(条件判断);

例:

    var sum = 0;
    var i = 1;
    do {
      sum += i;
      i++;
    } while (i <= 100);
    console.log(sum);  //5050

4.while与do…while 的区别

  • 执行顺序上:
  • while先判断,条件成立后再执行循环体内的代码。
  • do…while是执行循环体内的代码,再去判断。

例:

    var sum = 0;
    var i = 11;
    do {
      sum += i;
      console.log("我执行了");   //我执行了
      i++;
    } while (i <= 10);

    
    var sum = 0;
    var i = 11;
    while (i <= 10) {
      sum += i;
      console.log("我执行了");  //不符合条件,不会被输出
      i++;
    }
    console.log(sum);  //0

5.break

  • break:
  • 在switch语句中,跳出选择流程。
  • 在循环语句中使用,跳出当前循环。
  • break:
  • 如果执行break,则循环语句中后面的代码都不会执行,并且整个循环都会结束。
  • continue:
  • 只能在循环中使用,让本次循环结束,循环语句中后面的代码本次就不会执行了。接着执行下次循环。

例:

    var i = 1;
    while (i <= 10) {
      document.write("这是i的第" + i + "次执行!");
      var j = 1;
      while (j <= 10) {
        if (j == 2) {
          break;
        }
        document.write("这是j的第" + j + "次执行!");
        j++;
      }
      document.write("<br>")
      i++;
    }
    document.write("循环结束了");

在这里插入图片描述


案例练习

  • 求1~100的累加和。
    var sum = 0;
    var i = 0;
    while(i<=100){
      sum += i;
      i++;
    }
    console.log(sum);  //5050
  • 100以内的7的倍数。
    var i = 1;
    while (i <= 100) {
      if (i % 7 == 0) {
        document.write(i);
        document.write("<br>");  //7、14、21、28、35、42、49、56、63、70、77、84、91、98
      }
      i++;
    }
  • 打印100以内的所有偶数的和。
    var sum = 0;
    for(var i=1;i<=100;i++){
      if (i%2==0) {
        sum += i;
      }
    }
    console.log(sum);  //2550
  • 用*打印一个直角三角形。
    for (var i = 20; i >= 1; i--) {
      // document.write("这是第"+i+"行,这里应该有"+i+"个*");
      for (var j = 1; j <= i; j++) {
        document.write("*&nbsp;&nbsp;")
      }
      document.write("<br>")
    };

在这里插入图片描述

  • 入职薪资月薪2000元,每年涨上一年的10%,20年后的的月薪是多少?
    var salay = 2000;
    for (var i = 0; i < 20; i++) {
      salay *= 1.1;
    }
    console.log(parseInt(salay));  //13454
  • 打印100-200之间所有能被3或者7整除的数。
    for(var i = 100;i<=200;i++){
      if (i%3==0||i%7==0) {
         console.log(i);  //102、105、108、111、112、114、117、119、120、123、126、129、132、133、135、138、140、141、144、147、150、153、154、156、159、161、162、165、168、171、174、175、177、180、182、183、186、189、192、195、196、198
      };
    };
  • 计算10的阶乘(10!=1098765432*1)
    var sum = 1;
    for (var i = 10; i >= 1; i--) {
      sum *= i;
    }
    console.log(sum);  //3628800
  • 打印100以内的质数,判断一个数是不是质数(自然数中,除了1或本身,不能被其他数整除。)
    var n = 15;
    for (var n = 2; n <= 100; n++) {
      for (var i = 2; i < n; i++) {
        if (n % i == 0) {
          break;
        };
      };
      //最里面的for循环结束后,如果n是一个质数,则i与n应该相等。
      if (n == i) {
        document.write(n + "是一个质数。")
        document.write("<br>")
      };
    };

在这里插入图片描述

  • 打印100以内的质数,判断一个数是不是质数(自然数中,除了1或本身,不能被其他数整除。)
    var n = 15;
    for (var n = 3; n <= 100; n++) {
      // 做一个标记,flag = false表示该数不是质数。 true表示是一个质数。
      var flag = true;
      for (var i = 2; i < n; i++) {
        if (n % i == 0) {
          //说明这个数不是质数。
          flag = false;
          break;
        };
      };
      if (flag) {
        document.write(n + "是一个质数。");
        document.write("<br>");
      };
    };

在这里插入图片描述


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值