循环语句

  • while语句
  • 格式
  • 死循环
  • 循环体
  • 特点
  • 执行流程
  • 注意
  • 练习
  • dowhile循环
  • 格式
  • 特点
  • while 和 dowhile 选择
  • 练习
  • for循环
  • 格式
  • 特点
  • 执行流程


while语句

格式

while(条件表达式){
        条件满足执行的语句;
}

死循环

条件表达式永远为真的循环结构我们称之为死循环

循环体

循环结构后面的{}我们称之为循环体

特点

  • 只有条件表达式为真才会执行后面{}中的代码
  • 大括号中的代码有可能会被执行多次

执行流程

  • 首先会判断条件表达式是否为真, 如果为真就执行后面{}中的代码
  • 执行完后面{}中的代码, 会再次判断条件表达式是否还为真
  • 如果条件表达式还为真, 那么会再次执行后面{}中的代码
  • 重复上边步骤, 直到条件表达式不为真为止
let num = 1;
while(num <= 100){
    console.log("我" + num + "岁了!");		// 输出到 100 停止
    num++;
}

注意

  • 对于非Boolean类型的值, 会先转换为Boolean类型再判断
while (null){	// 转为false
    console.log("被执行了");	// 永远不会执行
}

while (1){
    console.log("被执行了");	// 死循环
}
  • while 后如果只有一条语句它可以省略大括号 , 如果省略了后面的{}, 那么只有紧随其后的那条语句受到控制
while (false)
    console.log("语句A");	// 控制	不会输出
console.log("语句B");		//不受控制	输出
  • 不能在()后面写分号
while (false);		// 单独 不能控制后边语句
{
    console.log("语句A");	// 输出
    console.log("语句B");	// 输出
}
  • 最简单死循环写法
while(1);

练习

打印1~100之间 7的倍数,并统计个数

let num = 1;
let count = 0;
while(num < 101) {
    if (num % 7 === 0) {
        console.log(num);
        count++;
    }
    num++;
}
console.log('一共有' + count + '个数');

dowhile循环

格式

do{
        需要重复执行的代码;
}while(条件表达式);

特点

无论条件表达式是否为真, 循环体都会被执行一次

do{
    console.log("ABC");	// 输出
}while (false);

while 和 dowhile 选择

  • 大部分情况下while循环和dowhile循环是可以互换的
  • 如果循环体中的代码无论如何都需要先执行一次, 那么建议使用dowhile循环
  • 其它的情况都建议使用while循环

练习

要求用户输入密码, 判断输入密码是否正确(假设正确密码是123456) , 如果正确, 输出"密码正确"
如果不正确, 要求用户重新输入

let pwd = -1;
do{
    pwd = prompt("请输入密码");
}while (pwd !== "123456");
alert("密码正确");

for循环

格式

for(初始化表达式;条件表达式;循环后增量表达式){
        需要重复执行的代码;
}

for(let num = 1;num <= 10;num++){
    console.log("我" + num + "岁了");
}

特点

for循环的特点和while循环的特点一样, 只有条件表达式为真, 才会执行循环体

执行流程

  • 首先会执行初始化表达式, 并且只会执行一次
  • 判断条件表达式是否为真, 如果条件表达式为真, 就执行循环体
  • 执行完循环体就会执行循环后增量表达式
  • 重复以上步骤, 直到条件表达式不为真为止