JS从零开始(14)

84 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第14天,点击查看活动详情

几个循环例题

一、恶搞死循环(while循环)

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

这个很简单,就是如果用户输入的不是:我爱你 这三个字就一直弹窗,算法思路很简单,不过多赘述

二、恶搞死循环(do...while循环)

        do {
            var message = prompt('你爱我吗');
        } while (message !== '我爱你')
        alert('我也爱你');

同上,这个也很简单,无非就是多一次执行,也不过多赘述

三种循环小总结:

  • 如果用来计数,那么for,while,do...while三者使用基本相同,不过我们更喜欢用for

  • for循环主要跟计数有关,而while循环可以做更复杂的条件判断

  • while和do...while比for更灵活,而且do...while至少执行一次

  • 实际工作中for最常用

三、continue跳出循环

        for (var i = 1; i <= 5; i++) {
            if (i == 3) {
                continue;
                //break;
            }
            console.log('我现在吃的是第' + i + '个包子');
        }

continue的用法之前我们讲过是跳出本次循环,继续执行下一次循环,而非结束整个大循环,如上代码所示,continue的作用就是跳过i == 3这次👇,如果想跳出i <= 5这个大循环,直接将continue换成break(提醒一下,注意switch语句中的穿透效果!!)

image.png

四、求1~100之间,除了能被7整除的数之外的整数和

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

很简单,不赘述

字符串的查找(续)

在上一节我们讲到indexOf()/lastIndexOf()可以查找指定内容,其实这个方法还可以指定第二个参数 比如:

        var str = 'hello world!';
        num1 = str.indexOf('w', 4);//6
        num2 = str.indexOf('e', 4);//-1
        num3 = str.indexOf('w', 7);//-1
        console.log(num1); //6
        console.log(num2); //-1
        console.log(num3); //-1

解释:我们在str.indexOf('w', 4)中指定的第二个参数4其实是从下标为4的地方开始查找w的位置,同样,如果没有查找到则返回-1。

又比如:

        var str = 'abcdefgabcdabcd';
        var index = str.indexOf('a');//先获取a第一次出现的位置
        var num = 0;//计数器
        while (index !== -1) { //如果不等于-1就执行下面的代码(意思就是把str中所有的字符全部遍历一遍)
            console.log(index);//打印第一次出现的位置0
            num++; // 记录打印的次数(意思是记录a出现的次数)
            index = str.indexOf('a', index + 1);//因为indexOf只能查询第一次出现的位置,所以指定第二个参数以保证能够把后面的字符全部查询完毕
        }

        console.log('a出现了' + num + '次');//字符串拼接

打印结果:

image.png

今天聊到这里👀