0
点赞
收藏
分享

微信扫一扫

JavaScript流程控制-循环

开源分享 2022-05-06 阅读 124

目录

for循环

for循环执行顺序

双重/层for循环

双层for循环执行顺序

while循环

do while循环

三者总结

continue

break

简易ATM案例


循环目的:重复执行某些代码。

for循环

重复执行某些代码,通常跟计数有关系。

语法结构:

for (初始化变量;条件表达式;操作表达式) {
    循环体;  //被重复执行的代码称为循环体
}

初始化变量:就是用var声明的一个普通变量,通常作为计数器使用

条件表达式:就是用来决定每一次循环是否继续执行,就是终止条件

操作表达式:是每次循环最后执行的代码,经常用于计数器变量进行更新(递增/递减)

for循环执行顺序

<script>
    for (var i = 1; i <= 3; i++) {
        console.log('你好');
    }
    console.log(i);
</script>

    //第一次for循环
    var i = 1;
    i <= 3;
    console.log('你好');
    i++;   // i=2
    //第二次for循环
    i <= 3;
    console.log('你好');
    i++;   // i=3
    //第三次for循环
    i <= 3;
    console.log('你好');
    i++;   // i=4
    //第四次for循环
    i <= 3;   //此时结果为false,所以结束循环,输出i结果为4
// 例题
<script>
    for (var i = 1; i === 3; i++) {
        console.log('你好');
    }
</script>

// 执行0次

for循环执行相同的代码(递减)

<script> 
    var num = prompt('请您输入次数');
    for (var i = num; i >= 1; i--) {
        console.log('好好学习天天向上');
    }
</script>

双重/层for循环

循环嵌套

语法结构:

for (外层的初始化变量; 外层的条件表达式; 外层的操作表达式) {
    for (里层的初始化变量; 里层的条件表达式; 里层的操作表达式) {
        // 执行语句;
    }
}

// 可以把里面的循环看做是外层循环的语句

双层for循环执行顺序

外层循环执行一次, 里层循环执行全部

<script>
    for (var i = 1; i <= 2; i++) {
        console.log('这是外层循环第' + i + '次');

        for (var j = 1; j <= 3; j++) {
            console.log('这是里层的循环第' + j + '次');
        }
    }
</script>

/* 
//外层for循环第一次
var i = 1;
i <= 2;
console.log('这是外层循环第' + i + '次'');
for (var j = 1; j <= 3; j++) {
    console.log('这是里层的循环第' + j + '次');
}

    //里层for循环第一次
    var j = 1;
    j <= 3;
    console.log('这是里层的循环第' + j + '次');
    j++;  // 2

    //里层for循环第二次
    j <= 3;
    console.log('这是里层的循环第' + j + '次');
    j++;  // 3

    //里层for循环第三次
    j <= 3;
    console.log('这是里层的循环第' + j + '次');
    j++;  // 4

    //里层for循环第四次
    j <= 3;  // j=4,跳出循环,里层结束

i++;  // 2  外层for循环第一次结束


//外层for循环第二次
i <= 2;
console.log('这是外层循环第' + i + '次'');
for (var j = 1; j <= 3; j++) {
    console.log('这是里层的循环第' + j + '次');
}

    //里层for循环第一次
    var j = 1;
    j <= 3;
    console.log('这是里层的循环第' + j + '次');
    j++;  // 2

    //里层for循环第二次
    j <= 3;
    console.log('这是里层的循环第' + j + '次');
    j++;  // 3

    //里层for循环第三次
    j <= 3;
    console.log('这是里层的循环第' + j + '次');
    j++;  // 4

    //里层for循环第四次
    j <= 3;  // j=4,跳出循环,里层结束

i++;  // 3  外层for循环第二次结束


//外层for循环第三次
i <= 2;  // i=3,跳出循环,外层结束

*/

while循环

语法结构:

while (条件表达式) {
    // 循环体
}

执行思路:当条件表达式结果为true,则执行循环体,否则退出循环

注意点:

  • 有计数器即初始化变量
  • 也有操作表达式,完成计数器的更新,防止死循环
<script>
    var num = 1;
    while (num <= 100) {
        console.log('你好');
        num++;
    }
</script>

do while循环

语法结构:

do {
    // 循环体
} while (条件表达式)

执行思路:先执行一次循环体,再判断条件,如果条件表达式结果为真,则继续执行循环体,否则退出循环

<script>
    var i = 1;
    do {
        console.log('how are you?');
        i++;
    } while (i <= 100)
</script>

do while 循环体至少执行一次

三者总结

  • for循环:适合数字,确定要循环多少次
  • 循环次数不确定,用while或do-while
  • 根据需求,如果是先干再判断:do-while
  • 如果是先判断再干:while

continue

立即跳出本次循环,直接执行下一次循环

    <script>
        // 求1~100 之间, 除了能被7整除之外的整数和 
        var sum = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                continue;
            }
            sum += i;
        }
        console.log(sum);
    </script>

break

立即退出整个循环

for里的break:只要浏览器执行了break,它后面的所有代码都不执行,而且立即结束整个for循环

简易ATM案例

  • 里面现存有 100 块钱。
  • 如果存钱,就用输入钱数加上先存的钱数, 之后弹出显示余额提示框
  • 如果取钱,就减去取的钱数,之后弹出显示余额提示框
  • 如果显示余额,就输出余额
  • 如果退出,弹出退出信息提示框
    <script>
        var rest = 100

        do {
            var handler = Number(prompt('请输入您的操作:\n1.存钱\n2.取钱\n3.查看余额\n4.退出'))
            if (handler === 4) {
                break
            }
            switch (handler) {
                case 1:
                    var money = Number(prompt('请输入您的存款金额'))
                    rest += money
                    alert(rest)
                    break
                case 2:
                    var money = Number(prompt('请输入您的取款金额'))
                    if (rest < money) {
                        alert('余额不足')
                    } else {
                        rest -= money
                        alert(rest)
                    }
                    break
                case 3:
                    alert(rest)
                    break
                // case 4:
                //     break  // 这里的break只会退出switch语句,不会退出while循环
            }
        } while (true)
    </script>
举报

相关推荐

0 条评论