流程控制-循环结构
2019-01-24 本文已影响0人
让思念入土
for循环
for 循环 是 循环条件和数字 直接相关的循环
//for 循环一般 用来 根据次数 循环
for(初始化; 条件表达式; 自增表达式 ){
//循环体
}
//如:
for(var i = 0; i < 10; i++){
console.log('i='+i);
}
1.初始化
2.条件表达式 -> 3.循环体 -> 4.自增表达式
之后 一直 执行 234 -> 234,直到条件表达式为 false,才结束循环。
案例: 求1-100之间所有偶数的和
var sumNum = 0;
for(var i = 1;i <= 100; i++){
if(i % 2 == 0){ // 如果 i 取模2 等于0,则 i 为 偶数
sumNum += i;
}
}
console.log('1-100之间所有偶数的和 = ' + sumNum);
双重for循环
for (外循环的初始; 外循环的条件; 外循环的增量) {
for (内循环的初始; 内循环的条件; 内循环的增量) {
需执行的代码;
}
}
-
内层循环可以看做外出循环的语句。
-
内层循环执行的顺序也要遵循for循环的执行书序。
-
外层循环执行一次,则内层循环要执行全部次数(跑完毕)。
案例 :用 ☆字符 组成 一个正方形 (3 * 3),并输出
var star = '';
for (var j = 0; j < 3; j++) {
for (var i = 0; i < 3; i++) {
star += '☆'
}
// 每次满 3个星星 就 加一次换行
star += '\n'
}
console.log(star);
使用 for循环 打印 九九乘法表
var str = ''
for (var i = 1; i <= 9; i++) { // 外层for控制 行数 9行
for (var j = 1; j <= i; j++) { // j 控制列数 列数和行数是一样的 j <= i
// 我们发现了一个非常好的规律 第一行有 一列 第二行有2列 第三行有3列 第9行有9列
str += j + " × " + i + " = " + i * j + '\t';
}
str += '\n';
}
console.log(str);
while循环
次数不确定时使用,重复执行某段代码
语法:
//条件表达式为 true 时重复执行循环体代码
//条件表达式为 false 退出循环
while (条件表达式) {
// 循环体代码
}
条件表达式 的结果是一个 布尔值 ,为 true 时,执行循环体代码,为 false 时,退出循环,执行后面代码
执行顺序:
先判断,再执行循环体
1.先执行 条件表达式 ,结果为 true,则 执行循环体代码,如果为 false,则退出 循环,进入后面代码执行
2.然后执行 循环体代码 ,只要 条件表达式 为真,则会一直执行。
3.回到 1,执行 条件表达式 ....
案例:计算 1 ~ 100 之间所有数的和
var countNum = 1; // 作为 1 ~ 100 的每个数
var numSum = 0; // 用来记录 相加 结果
while(countNum <= 100){
numSum += countNum;
countNum++;
}
console.log('1~100所有数的和为:' + numSum);
小结:
- while 语句就是当条件满足时重复执行相同的代码;
- 无论是循环结构还是分支结构,在执行完成后,都会执行后续代码;
- 在循环体内部,需要修改循环条件,否则会造成死循环。
do...while 循环
语法
do{
// 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);
执行顺序
先执行一次循环体代码,再判断 循环条件
1.先执行一次 循环体代码
2.再执行 条件表达式 ,结果为 true,则 继续执行循环体代码
如果为 false,则退出 循环,进入后面代码执行
var i=1; //计数器
do {
console.log('hi');
i++; //计数器自增
}while(i<=10)
小结:
1、do while和while循环非常像,二者可以相互代替
2、do...while语句不管条件成不成立都会先执行一次代码 ,才会根据挑几件是否满足,决定执行次数
3、和while循环一样,在循环内部,需要修改循环条件,否则会造成死循环
continue 继续的意思
跳出本次循环,进行下一次循环
for (i=1;i<=5;i++){
if (i==3){
console.log('这个包子有虫子,扔掉');
continue;
}
console.log('我现在正在吃'+i+'个包子');
}
结果
我现在正在吃1个包子
我现在正在吃2个包子
这个包子有虫子,扔掉
我现在正在吃4个包子
我现在正在吃5个包子
break
退出整个循环 执行循环后面的代码
for (i=1;i<=5;i++){
if (i==3){
console.log('这个包子有虫子,扔掉');
break;
}
console.log('我现在正在吃'+i+'个包子');
}
结果:
我现在正在吃1个包子
我现在正在吃2个包子
这个包子有虫子,扔掉