break 和 continue的区别及如何终止外层循环

1,615 阅读2分钟

这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战

break 和 continue 这两个语句的出现可以帮助我们大量的优化代码,减少了计算机的计算次数。但是很容易混淆它们的用法.

break

我已经找到我要的答案了,我不需要进行更多的循环了!

  • break 语句的作用可以立即停止当前的 for、do while、while 循环。 
  • 根据一些条件设置 break 位置,直到循环能够执行到 break 语句立即停止执行,跳出循环

注意

  • break 如果没有特殊指示,只能停止自己所在的那一层循环,并不能终止外部循环。(例1)
  • 如果想停止外层循环,可以给外层循环添加一个标签名 label,在内层循环的 break 关键字后面空格加一个 label 名。(例2)

例1

for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                console.log(i,j);
                if (j >= 2){
                    break;
                }
            }
        }

输出:

image.png

这里我们可以看到, break只是终止了内层的循环, 外层的循环还在继续, 只有内层循环中满足if条件j>=2的部分不会再执行了

例2

lable: for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                console.log(i,j);
                if (j >= 2){
                    break lable;
                }
            }
        }

输出:

image.png

当为break设置标签终止外部循环时, 可以看到所有i>=2的部分都不会执行了.

continue

这个答案不是我想要的,赶紧试试下一个吧!

遇到 continue 表示当前的一次循环数据不是我们想要的,会立即停止当前次的循环,立即进入下一次循环


注意

  • 要根据特殊条件设置 continue 的位置。
  • continue 如果没有特殊指示只能进入自己的下一次循环,不能立即停止外层循环的这一次进入下一次
  • 控制外层循环的方式与 break 一样,都是添加外层的标签名。(例1)

例1

for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                if (j >= 3){
                    continue;
                }
                console.log(i,j)
            }
        }

输出:

image.png

例2

lable: for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                if (j >= 3){
                    continue lable;
                }
                console.log(i,j)
            }
        }

输出:

image.png

在这两个例题中, 使用continue结束内层还是外层循环得到的结果并没有区别.

小结

break语句可以跳出当前循环;

break语句通常配合if,在满足条件时提前结束整个循环;

break语句总是跳出最近的一层循环;

continue语句可以提前结束本次循环;

continue语句通常配合if,在满足条件时提前结束本次循环。