携手创作,共同成长!这是我参与「掘金日新计划 · 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语句中的穿透效果!!)
四、求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 + '次');//字符串拼接
打印结果:
今天聊到这里👀