Heim  >  Artikel  >  Web-Frontend  >  JS-Schleifenlernen: Brechen Sie die Schleifenanweisungen ab, unterbrechen Sie sie und fahren Sie fort

JS-Schleifenlernen: Brechen Sie die Schleifenanweisungen ab, unterbrechen Sie sie und fahren Sie fort

青灯夜游
青灯夜游Original
2022-08-03 19:08:493336Durchsuche

在之前的文章中,我们带大家学习了JS中的几种循环控制结构(while和do-while循环for循环),下面聊聊跳出循环语句break和continue,希望对大家有所帮助!

JS-Schleifenlernen: Brechen Sie die Schleifenanweisungen ab, unterbrechen Sie sie und fahren Sie fort

通过前面对循环的学习我们知道,默认情况下循环会在表达式结果为假时自动退出循环,否则循环会一直持续下去。某些情况下,我们不用等待循环自动退出,可以主动退出循环,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>

分析:

  • for (var i = 0; i 语句可以循环得出1~10 之间的所有数字

  • if(i % 2 != 0)语句用于判断i的值能否整除2,不能整除则()中值为true,则执行continue;语句。

  • 在循环体中,使用if(i % 2 == 0)语句进行判断,如果i的值能整除2就使用“console.log(i);”输出;如果i的值不能整除2,则触发continue;语句,跳出本次循环(不进行输出),执行下一次循环。

输出结果:

JS-Schleifenlernen: Brechen Sie die Schleifenanweisungen ab, unterbrechen Sie sie und fahren Sie fort

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。

最终结果如下:

JS-Schleifenlernen: Brechen Sie die Schleifenanweisungen ab, unterbrechen Sie sie und fahren Sie fort

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>

JS-Schleifenlernen: Brechen Sie die Schleifenanweisungen ab, unterbrechen Sie sie und fahren Sie fort

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

【推荐学习:javascript高级教程

Das obige ist der detaillierte Inhalt vonJS-Schleifenlernen: Brechen Sie die Schleifenanweisungen ab, unterbrechen Sie sie und fahren Sie fort. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn