带有break和标签语句的嵌套Javascript for循环

问题描述 投票:0回答:2

我对 Javascript 还算陌生,目前正在阅读《Professional Javascript for Web Developers》一书,我发现了这段代码,它使用break语句退出当前循环并跳转到名为最外层的标签。

现在我明白了break和labels的作用,但我无法理解为什么最后的值是55?

好的,所以带有 var i 的 for 循环将循环 4 次,然后在 5 处它会中断为 label:outermost 并与 j 相同,因此第一次迭代 i = 4 且 j = 4 且 num = 2。我想这部分让我感到困惑。 .代码在什么时候停止。如果我要从头开始编写此代码,我的第一直觉是拥有一个外部变量并为其设置条件。但通过下面的代码,我不知道控制结构所在的位置和最终值。感谢任何帮助或指出正确的方向,谢谢。

var num = 0;

outermost:

for (var i=0; i < 10; i++) {
    for (var j=0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break outermost;
        }
        num++;
    }
}
alert(num);
javascript break labeled-statements
2个回答
0
投票

这个嵌套循环正在模拟里程表。

i
是 10 的数字,
j
是 1 的数字。每当 1 的数字发生变化时,
num
就会递增;在每次迭代开始时,
num
包含里程表的值。

i
j
均为
5
时,循环停止。此时,里程表将显示
55
,这就是
num
中的内容。


0
投票

当i为0到4时,最内层循环执行50次。当i = 5时,最里面的循环只执行5次,直到到达

i==5 && j==5
并跳出。所以一共是55次。

© www.soinside.com 2019 - 2024. All rights reserved.