• 技术文章 >web前端 >js教程

    JS循环学习:跳出循环语句break和continue

    青灯夜游青灯夜游2022-08-03 19:08:49原创88
    在之前的文章中,我们带大家学习了JS中的几种循环控制结构(while和do-while循环for循环),下面聊聊跳出循环语句break和continue,希望对大家有所帮助!

    通过前面对循环的学习我们知道,默认情况下循环会在表达式结果为假时自动退出循环,否则循环会一直持续下去。某些情况下,我们不用等待循环自动退出,可以主动退出循环,JavaScript 中提供了 break 和 continue 两个语句来实现退出循环和退出(跳过)当前循环。

    1、continue语句

    continue 语句用来跳过本次循环,执行下次循环。当遇到 continue 语句时,程序会立即重新检测条件表达式,如果表达式结果为真则开始下次循环,如果表达式结果为假则退出循环。

    【示例1】使用 continue 语句跳出 for 循环:

    <script type="text/javascript">
    for (var i = 1; i < 10; i++) {
        if(i % 2 != 0) {
           continue;
        }
        console.log(i);
    }
    </script>

    分析:

    输出结果:

    1.png

    2、break语句

    break语句用于跳出当前的语法结构,可以终止循环体的代码并立即跳出当前的循环,执行循环之后的代码(如果有的话)。

    break和continue的不同点是:continue语句只是结束本次循环,而 break 语句会终止整个循环的执行。

    沿用上面的示例1中代码,将continue;换成break;,会输出什么?

    <script type="text/javascript">
    for (var i = 1; i < 10; i++) {
        if(i % 2 != 0) {
           break;
        }
        console.log(i);
    }
    </script>

    答案是:什么也不输出。为什么会这样尼?我们来分析一下:

    forx循环一开始,i=1,1小于10吗?当然,然后开始执行循环体中的if(i % 2 != 0)语句;

    那么1能整除2吗?显然是不能,因此()中值为true,则执行if中的“break;”语句,直接跳出整个循环了,根本没有机会执行“console.log(i);”语句。

    3、嵌套 For 循环

    值得注意的是,breakcontinue都只对当前循环有效。如果我们有嵌套循环,那么就要很小心了。不妨来看下面的例子:

    for (let i = 0; i < 5; i++) {
        if (i % 2 == 0) continue;
        for (let j = 0; j < 5; j++) {
            if (j == 2) break;
            console.log(`i = ${i}, j = ${j}`);
        }
    }

    这里我们有两个循环,每一个都会执行 5 次(0~4)。外层的循环在 i 是偶数的时候,跳过当前循环执行下一个。也就是说只有 i 为 1 或则 3 的时候,才会执行内层的循环。

    内层的循环只要 j 的值为 2,就终止了。因此,j 只有 0 和 1。

    最终结果如下:

    4.png

    4、JavaScript 标签

    从 JavaScript 1.2 开始,可以将标签与 break 和 continue 结合使用,来更精确的控制程序的执行。

    JavaScript 中的标签与 HTML 中的标签不同,JavaScript 中的标签就是一个标识符(类似变量名),后面跟随一个冒号:。JavaScript 标签可以声明在任何语句或者代码块之前,并与 break 或 continue 配合来跳出特定的循环,例如当多个循环嵌套使用时,单纯使用 break 只能跳出当前的循环,无法跳出外层循环,如果将 break 与标签配合使用,则可以一次跳出多层循环。

    示例代码如下:

    <script type="text/javascript">
    document.write("开始循环!<br /> ");
    outerloop:          // 定义一个标签    
    for (var i = 0; i < 5; i++) {
       document.write("外层循环: " + i + "<br />");
       innerloop:       // 定义一个标签
       for (var j = 0; j < 5; j++) {
          if (j > 3 ) break ;           // 跳出内层循环
          if (i == 2) break innerloop;  // 跳出内层讯息
          if (i == 4) break outerloop;  // 跳出外层循环
          document.write("内层循环: " + j + " <br />");
       }
    }      
    document.write("循环结束!<br /> ");
    </script>

    2.png

    注意:break 或 continue 与标签之间不能出现换行。另外,标签名称和相关循环之间不能出现其它代码。

    【推荐学习:javascript高级教程

    以上就是JS循环学习:跳出循环语句break和continue的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:JS循环学习:for循环语句的使用(示例详解) 下一篇:深入解析JS自定义函数的声明和调用
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• JS跳出循环的三种方法• python3终端按哪里跳出循环• php中跳出循环的方法有几种• java如何跳出循环• PHP循环学习五:如何跳出循环?5种方法浅析
    1/1

    PHP中文网