07 JavaScript流程控制——循环结构

1、循环

1.1循环的目的

  • 重复执行某些语句

2、for循环

  • 在程序中,一组被重复执行的语句叫循环体,能否继续执行,取决于循环的终止条件。由循环体以及终止条件组成的语句,被称之为循环语句。

2.1 语法结构

for(初始变化量;条件表达式;操作表达式){
//循环体
}
  • 初始变化量,就是var声明的一个普通变量,常用于计数。

  • 条件表达式,就是终止的条件。

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

代码体验:重复打印一百句“你好”

for (var i=1;i<=100;i++){
console.log('你好!');
}

2.2 for循环的执行过程

初始变化量只执行一次——条件表达式——循环体——操作表达式——条件表达式...

2.3 断点调试

在控制台(console)的右边sources,点击行数可以设置断点,F11可以进行下一步程序运行。

F11:程序单步执行

watch:监视,通过watch可以监视变量的值的变化,非常常用。

2.4 for循环重复不同的代码

        for (var i = 1; i <= 100; i++) {
            if (i == 1) {
                console.log('这个人今年1岁啦,他出生了');
            } else if (i == 100) {
                console.log('这个人今年100岁了,他死了');
            } else {
                console.log('这个人今年' + i + '岁了');
            }
        }

2.5 案例:计算1到100的整数和

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

2.6 案例:求1到100之间所有奇数和所有偶数的和

        var even = 0;
        var odd = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 2 == 0) {
                even += i;
            } else {
                odd += i;
            }
        }
        console.log('偶数和:' + even);
        console.log('奇数和:' + odd);

2.7 案例:求班级成绩平均数

用户输入班级人数,之后依次输入每个学生的成绩,最后打印出该班级平均成绩。

        var num = prompt('请输入班级总人数:');
        var sum = 0;
        var average = 0;
        for (var i = 1; i <= num; i++) {
            var temp = prompt('请输入第' + i + '个学生的成绩:');
            sum = sum + parseFloat(temp);
        }
        average = sum / num;
        console.log('班上平均成绩为' + average);

3、双重for循环

3.1语法结构

for(外层的初始化变量;外层的条件表达式;外层的操作表达式){
for(里层的初始化变量;里外层的条件表达式;里层的操作表达式){
//执行语句
}
}
  • 我们可以把里面的循环看作是外层循环的语句。

  • 外层循环循环一次,里面的循环执行全部。

3.2 案例:打印五行五列星星

        var str = '';
        for (var i = 1; i <= 5; i++) {
            for (var j = 1; j <= 5; j++) {
                str = str + '❤';
            }
            //一行打印完毕就要另起一行
            str = str + '\n';
        }
        console.log(str);

3.3 案例:打印倒三角

自己写的:

        //打印倒三角案例
        var num = 10;
        var str = '';
        for (i = 1; i <= 10; i++) {
            for (j = 1; j <= num; j++) {
                str += '❤';
            }
            str += '\n';
            num--;
        }
        console.log(str);

老师改进版:

        //打印倒三角案例
        var str = '';
        for (i = 1; i <= 10; i++) {
            for (j = i; j <= 10; j++) {
                str += '❤';
            }
            str += '\n';
        }
        console.log(str);

3.4 打印九九乘法表

        //打印九九乘法表
        var str = '';
        for (var i = 1; i <= 9; i++) { //外层循环控制行数
            for (var j = 1; j <= i; j++) { //里层循环控制个数
                str += (j + '×' + i + '=' + i * j) + '\t'; //\t是tab缩进
            }
            str = str + '\n';
        }
        console.log(str);

4、while循环

4.1 语法结构

while(条件表达式){
     //循环体
}
  • while循环里面也有操作表达式,千万别忘记,不然会成死循环,会浪费电脑资源。

        var num = 1;
        while (num <= 100) {
            console.log('你好'); 
            num++;//操作表达式
        }

4.2 案例:你爱我吗

弹出你爱我吗对话框,只要用户输入的不是我爱你就一直询问。

        var str = prompt('你爱我吗?');
        while (str !== '我爱你') {
            str = prompt('你爱我吗?');
        }
        alert('我也爱你啊!')

5、do while循环

5.1 语法结构

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

5.2 执行思路

跟while不同的是:do while 先执行一次循环体, 再判断条件。

5.3 案例:

        //计算1到100的和
        var i = 1;
        var sum = 0;
        do {
            sum = sum + i;
            i++;
        } while (i <= 100)
        console.log(sum);

循环小结:

  • 我们常用for循环

  • while和do while 可以做更复杂的条件判断

  • while是先判断后执行,do while是先执行后判断,do while至少执行一次循环体

6、continue break

6.1 continue关键字

continue关键字用于立即跳出本次循环,继续下次循环(本次循环中continue后面的代码就会少执行一次)

例子1:我要吃五个包子,但是第三个包子有虫子,我跳过不吃

        for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                continue;//只要遇见continue就退出本次循环,直接跳到i++
            }
            console.log('我正在吃第' + i + '个包子');
        }

例子2:求100以内的除了被7整除之外的整数和

        var sum = 0;
        for (var i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                continue;
            }
            sum += i;
        }
        console.log(sum);

6.2 break关键字

break关键字会跳出整个循环。

比如前面吃包子的例子,如果吃到第三个包子里面有虫子,那么第四个和第五个包子都不吃了就可以用break关键字。

        for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                break;//退出整个循环
            }
            console.log('我正在吃第' + i + '个包子');
        }
  • 总结:continue是退出本次循环,break是退出整个循环。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值