你不知道的for循环

在这里插入图片描述

前言

前几天看到一位我关注很久的大佬发了关于嵌套for循环中当内循环中符合条件时如何退出外循环的知识讲解。我当时没有在意,觉着直接在内循环中条件判断中break不就好了,今天闲来无事,想着测试下看看自己的想法对不对,一番测试之后发现事情并没有这么简单。


示例代码
//定义一个嵌套循环体
for (let i=0;i<10;i++){
    for(let j =0;j<5;j++){
        if(j==3){
            console.log(j)
        }
    }
}

因为外层循环第一次执行时,内层循环从 j = 0 开始,依次递增,直到 j = 4

 内层循环执行过程中,当 `j = 3` 时,满足条件 `j == 3`,因此会输出 `3`。
  • 外层循环第二次执行时,内层循环再次从 j = 0 开始,依次递增,直到 j = 4

    同样,当 j = 3 时,输出 3

  • 这样依次类推,外层循环执行10次,每次内层循环都会输出一次 3

因此,总共会输出10次数字 3
此时控制台输出结果如下,

for (let i =0;i<10;i++){
for(let j=0;j<5;j++){
if(j==3){
console.log(j)
}
}
}
停止内循环

如果我想当j=3时停止内循环,操作如下:

for (let i=0;i<10;i++){
    for(let j =0;j<5;j++){
        if(j==3){
            console.log(j)
            break;
        }
        console.log(j,"aaaaa")
    }
}

发现输出结果为

0 aaaaa
1 aaaaa
2 aaaaa
3 
.... //十次

通过结果不难发现,使用break;只是停止了内循环,而外循环仍然在执行执行次数为10次。
那有时候在咱们日常开发中,如果我们就想在当内循环中满足了某个条件时想关闭外循环该如何做呢?咱们接着往下看

退出外循环

还是拿上述的例子

//定义for循环的名字,随便写个名字都可
testFor:
for (let i=0;i<10;i++){
    for(let j =0;j<5;j++){
        if(j==3){
            console.log(j)
            break testFor;
        }
        
    }
}
//执行结果:
3

我们通过上面的代码可知,再break循环时,如果加上for循环的名字,就会将外循环停止,所以结果只输出了一个3

总结

虽然这个知识点很简单,但是在面试过程中很容易忽略在定义for循环的时候可以增加for循环命名的知识点,并且在日常开发工作中,我们有时候也难免会遇到这样的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值