js跳出循环

一。break

break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句

由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的。

如下:

for(var i=1;i<=10;i++) { 
    if(i==8) { 
        break; 
    } 
    document.write(i); 
} 

二。continue

continue是跳过本次循环,开始循环的下一次新迭代

continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内

如下:

for(var i=1;i<=10;i++) { 
    if(i==8) { 
        continue; 
    } 
    document.write(i); 
} 

三。return

return语句就是用于指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误!

如下:

<script>
if (username==""){
   alert("请输入用户名");
   return false;
}
if(qq==""){
   alert("请输入QQ");
   return false;
}
</script>

四。标签(label

JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置。(1. 跳出指定循环。2. 跳出代码块。)

标签的语法格式如下:(标签可以是任意的标识符,但不能是保留字,语句部分可以是任意语句

label:
  语句

栗子1:   标签通常与break语句和continue语句配合使用,跳出特定的循环(对于多层循环时)

与break时:

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语句后面不使用标签,则只能跳出内层循环,进入下一次的外层循环。

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语句后面不使用标签,则只能进入下一轮的内层循环。

 

栗子2:   标签也可以用于跳出代码块

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

上面代码执行到break foo,就会跳出区块。

原文地址:https://www.cnblogs.com/forever-xuehf/p/12775024.html