美文网首页
3.6.7 标签语句、3.6.8 break 和 contin

3.6.7 标签语句、3.6.8 break 和 contin

作者: Wuthier | 来源:发表于2021-04-25 13:41 被阅读0次
    3.6.7 标签语句

    便签语句用于给语句加标签。

    start: for (let i = 0; i < count; i++) {
        console.log(i);
    }
    

    在这个例子中,start是一个标签,可以在后面通过break或continue语句引用。标签语句的典型应用场景是嵌套循环。

    3.6.8 break 和 continue 语句

    break和continue语句为执行循环代码提供了更严格的控制手段。

    break语句用于立即退出循环,强制执行循环后的下一条语句。

    continue语句用于立即退出循环,但会再次从循环顶部开始执行。

    let num = 0;
    for (let i = 1; i < 10; i++) {
        if (i % 5 == 0) {
            break;
        }
        num++;
    }
    console.log(num); // 4
    

    这段代码,for循环会将变量 i 由1递增到10。而在循环体内,有一个if语句用于检查 i 能否被5整除(使用取模操作符)。如果是,则执行break语句,退出循环。变量num的初始值为0,表示循环在退出前执行了多少次。当break语句执行后,下一行执行的代码是console.log(num),显示4。之所以循环执行了4次,是因为当 i 等于5时,break语句会导致循环退出,该次循环不会执行递增num的代码。

    let num = 0;
    for (let i = 1; i < 10; i++) {
        if (i % 5 == 0) {
            continue;
        }
        num++;
    }
    console.log(num); // 8
    

    这一次,console.log显示8,即循环被完整执行了8次。当 i 等于5时,循环会在递增num之前退出,但会执行下一次迭代,此时 i 是6。然后,循环会一直执行到自然结束,即 i 等于10。最终num的值是8而不是9,是因为continue语句导致它少递增了一次。

    break和continue都可以与标签语句一起使用,返回代码中特定的位置。这通常是在嵌套循环中。

    let num = 0;
    outermost:
    for (let i = 0; i < 10; i++) {
        for (let j = 0; j < 10; j++) {
            if (i == 5 && j == 5) {
                break outermost;
            }
            num++;
        }
    }
    console.log(num); // 55
    

    在这个例子中,outermost标签标识的是第一个for语句。正常情况下,每个循环执行10次,意味着num++语句会执行100次,而循环结束时console.log的结果应该是100。但是,break语句带来了一个变数,即要退出到的标签。添加标签不仅让break退出(使用变量j的)内部循环,也会退出(使用变量i的)外部循环。当执行到i和j都等于5时,循环停止执行,此时num的值是55。continue语句也可以使用标签。

    let num = 0;
    outermost:
    for (let i = 0; i < 10; i++) {
        for (let j = 0; j < 10; j++) {
            if (i == 5 && j == 5) {
                continue outermost;
            }
            num++;
        }
    }
    console.log(num); // 95
    

    这一次,continue语句会强制循环继续执行,但不是继续执行内部循环,而是继续执行外部循环。当i和j都等于5时,会执行continue,跳到外部循环继续执行,从而导致内部循环少执行5次,结果num等于95。

    学习下一篇文章

    相关文章

      网友评论

          本文标题:3.6.7 标签语句、3.6.8 break 和 contin

          本文链接:https://www.haomeiwen.com/subject/qfaglltx.html