前端-JS循环语句复习

循环语句

1.do-while语句

​ 概念:do-while是一个后测试循环语句,既代码会先执行一次在对退出条件进行求值.换句话说 就是 最少会执行一次

​ 使用方法:

​ do {

​ statement

​ } while (expression);

使用案列:

let i = 0;
do{
    i += 2;
    console.log(i);
}while(i<10);

//第一次: i = 2   打印 2,   判断i<10  -->;
//第二次:i = 4   打印4,  判断i<10 -->;
//.......
//第n次: i = 10  打印10,  判断i<10  跳出循环;
2.while语句

概念:while语句是一种先测试循环语句,既先检测退出条件,再执行循环体内的代码。有可能循环体内的代码都不会执行

使用方法:

while(expression) statement

let i = 0;
while(i<10){
    i += 2;
    console.log(i);
}

// i = 0   判断i<10  执行循环体内的语句(i = 2, 打印 2 )

// i = 2   判断i<10  执行循环体内的语句(i = 4, 打印 4 )
//...........
//i = 10    判断i<10    判断条件不成立跳出循环  
3.for语句

概念: for语句也是先测试语句,只不过增加了进入循环之后的初始化代码,以及循环执行后要执行的表达式

使用方法:

for(initialization;expression;post-loop-expression) {

​ statement;

}

案列:


for(let i = 0;i<10;i++){
    console.log(i);
}
//第一次:  初始化:let i = 0  -> 判断条件 i<10;  ->  执行循环体 ->更新条件i++    i=2;
//第二次:  判断条件 i<10; ->  执行循环体 ->更新条件i++   i=3;
//第三次:  判断条件 i<10; ->  执行循环体 ->更新条件i++   i=4;
//..........

//断点调试,加深理解
4.for循环与while循环的关系
for(let i = 0;i<10;i++){
    console.log(i);
}
//等同于
let i = 0;
for(;i<10;){
    console.log(i);
    i++;
}

//等同于

let i = 0;
while(i<10){
    console.log(i);
    i++;
}

//总结;能用for循环表示的  一定能用while循环表示   for循环其实是while循环的封装

//思考? 什么情况下用while 循环   什么情况下用for循环呢?
let a = true,b = 1;
while (a) {
    if (b > 9) {
      a = false;  //在循环体内间接计算迭代
    }
    console.log(b);
    b ++;  //在循环体内间接计算迭代
}

//建议: 能用for循环的 就不要用while循环, for循环执行效率更高


//极端案列(死循环)
for(let i = 0;;i++){   //缺少判断条件
    console.log("今天夜宵吃啥?");
}

for(let i = 0;i<10;){    //缺少更新循环语句
    console.log("今天夜宵吃啥?");
}

for(;;){
    console.log("完犊子了!");
}
5.break 和 continue

概念:break和continue 语句为执行循环代码提供了更严格的控制手段.其中 break 语句用户立即退出循环,强制执行循环后的下一条语句。而continue 语句也用于立即退出循环,但会再次再次从循环顶部开始执行.

//break的基础使用
for(let i = 0;i<10;i++){
    console.log(i);
    if(i % 5 == 0){
        break;  
    }
}
//continue的基础使用
for(let i = 0;i<10;i++){
    console.log(i);
    if(i % 5 == 0){
        continue;  
    }
}


难度升级

6.双层for循环

概念:双层for循环一般来遍历二维数组, 第一层循环是层数,第二层循环是列数

案列:打印五行五列的星星

let str = "";
for(let i = 0;i<5;i++){   //外层循环控制行数 
    for(let j = 0;j<5;j++){  //内层循环控制列数
        str += "★";
    }
    str += "\n";
}

//break的局限性
  //要求  num等于55的时候 跳出循环


let num = 0;
label:
for(let i = 0;i<10;i++){

    for(let j = 0;j<10;j++){
        
        if(i == 5 && j == 5){
            break label;
        }
        num++;
    }

}

//内循环 使用break 只能结束内存循环....
//借助标记语句 可以让break 跳出多层循环,  主要用于实现复杂的业务逻辑, 但是容易出错.  嵌套层级不宜过多

console.log(num);

案列: 打印倒三角形

let str  = "";

for(let i = 1;i<10;i++){

    for(let j = i;j<10;j++){
       str += "★";
    }
    str += "\n";
    
}

console.log(str);


案列:打印等腰三角形

//打印等腰三角形
let str  = "";
for(let i = 0;i<6;i++){
    for(let j = i;j<5;j++){
        str += " ";
    }
    for(let k = 0;k<i;k++){
        str += "★";
    }
    str += "\n";
}

console.log(str);
作业:

​ 打印九九乘法表

//打印九九乘法表
let str = "";
for(let i = 1;i<9;i++){
    
    for(let j = 1;j<=i;j++){
       str += j+"*"+i+"="+i*j+"\t";
    }
    str += "\n";
}

console.log(str);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值