JavaScript提供了控制处理循环和switch语句的关键字。可能需要跳过代码块的一部分并开始循环的下一次迭代。为了处理某些情况,JavaScript提供了break和continue语句。这些语句分别用于立即跳出循环或立即跳出当前循环执行下一个迭代。本文主要介绍JavaScript(JS) 中循环控制的break和continue关键字语句。

1、break 语句

break语句是用于提前退出循环,与continue关键字区别是,break是跳出整个循环,而continue关键字是跳出当前循环,不是跳出整个循环,还会执行一下循环。

例如,

var x = 1;
console.log("循环开始 \n ");
while (x < 20) {
  if (x == 5) {
    break;   // 跳出整个循环
  }
  x = x + 1;
  console.log( x + "\n");
}
console.log("循环结束 \n ");

2、continue 语句

continue语句告诉解释器立即开始循环的下一次迭代,并跳过剩余的代码块。与break的区别是break是立即跳出整个循环,相当于终止循环。

例如,

var x = 1;
console.log("循环开始\n ");
while (x < 10) {
   x = x + 1;
   if (x == 5) {
      continue;   // 跳过循环体的其余部分
   }
   console.log( x + "\n");
}         
console.log("循环结束\n ");

3、使用标签控制流

从JavaScript 1.2开始,标签(label)可以与break一起使用,并继续更精确地控制流。标签(label)只是一个后跟冒号(:)的标识符,应用于一个语句或代码块。

例如,

//使用break 标签示例
outerloop:        // 这是label标签名
for (var i = 0; i < 5; i++) {
   console.log("Outerloop: " + i + "\n");
   innerloop:
   for (var j = 0; j < 5; j++) {
      if (j > 3 ) break ;           // 退出最内层循环
      if (i == 2) break innerloop;  // 退出循环
      if (i == 4) break outerloop;  // 退出外层循环
      console.log("Innerloop: " + j + " \n");
   }
} 

注意:在'continue''break'语句与其标签名之间不允许换行。同样,在标号名称和相关循环之间不应该有任何其他语句。

例如,

//使用continue 标签示例
outerloop:     // 这是label标签名
for (var i = 0; i < 3; i++) {
   console.log("Outerloop: " + i + "\n");
   for (var j = 0; j < 5; j++) {
      if (j == 3) {
         continue outerloop;
      }
      console.log("Innerloop: " + j + "\n");
   }
}

推荐文档