重学JavaScript ——1、基本语法(break 语句和 continue 语句)

95 阅读1分钟

基本语法(break 语句和 continue 语句)

单层循环

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

image.png

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

image.png

Label 标签双层循环

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

image.png

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

image.png

      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)
        }
      }

image.png

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

      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)
        }
      }

image.png

上面代码中,continue命令后面有一个标签名,满足条件时,会跳过当前循环,直接进入下一轮外层循环。如果continue语句后面不使用标签,则只能进入下一轮的内层循环。

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

image.png

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