break , continue 和 标签 跳出循环

Posted on 2019-07-31 16:23  嗷呜~  阅读(576)  评论(0编辑  收藏  举报
  1. break
    跳出代码块或循环

    var i = 0while ( i <= 10){
           console.log(' i ');
           i ++;
           if ( i === 5 ) break;
    }
    // 0 1 2 3 4
    for (var i = 0; i < 5; i++) {
      console.log(i);
      if (i === 3)
        break;
    }
    // 0
    // 1
    // 2
    // 3
  2. continue
    continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。

    var i = 0;
    
    while (i < 100){
      i++;
      if (i % 2 === 0) continue;
      console.log('i 当前为:' + i);
    }

    上面代码只有在i为奇数时,才会输出i的值。如果i为偶数,则直接进入下一轮循环。

  3. 标签(label)
    语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。

    label:
      语句

    标签可以是任意的标识符,但不能是保留字,语句部分可以是任意语句。

    标签通常与break语句和continue语句配合使用,跳出特定的循环。

    top:
      for (var i = 0; i < 3; i++){
        for (var j = 0; j < 3; j++){
          if (i === 1 && j === 1) break top;
          console.log('i=' + i + ', j=' + j);
        }
      }
    // i=0, j=0
    // i=0, j=1
    // i=0, j=2
    // i=1, j=0

    上面为双重循环,break命令后加上了top标签(注意,top不用加引号),满足条件时,直接跳出双重循环,如果break语句后不使用标签,只能跳出内层循环,进入下一次的外层循环。
    标签也可以跳出代码块

    foo: {
      console.log(1);
      break foo;
      console.log('本行不会输出');
    }
    console.log(2);
    // 1
    // 2

    上面代码执行到break foo,就会跳出区块。
    continue语句也可以与标签配合使用。

    top:
      for (var i = 0; i < 3; i++){
        for (var j = 0; j < 3; j++){
          if (i === 1 && j === 1) continue top;
          console.log('i=' + i + ', j=' + j);
        }
      }
    // i=0, j=0
    // i=0, j=1
    // i=0, j=2
    // i=1, j=0
    // i=2, j=0
    // i=2, j=1
    // i=2, j=2

    continue命令后面有一个标签名,满足条件时,会跳过当前循环,直接进入下一轮外层循环。如果continue语句后面不使用标签,则只能进入下一轮的内层循环。
    原文链接:https://wangdoc.com/javascript/basic/grammar.html