zoukankan      html  css  js  c++  java
  • 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,就会跳出区块。

  • 相关阅读:
    深入浅出C#结构体——封装以太网心跳包的结构为例
    视频在线率统计——基于驱动总线设备的领域驱动设计方法落地
    在net Core3.1上基于winform实现依赖注入实例
    类与结构体性能对比测试——以封装网络心跳包为例
    基于Modbus三种CRC16校验方法的性能对比
    Git在公司内部的使用规范
    基于abp框架的数据库种子数据初始化
    VUE中登录密码显示与隐藏的最简设计——基于iview
    abp框架运行——前后端分离(基于VUE)
    基于HTTPS的接口测试——nginx配置SSL
  • 原文地址:https://www.cnblogs.com/forever-xuehf/p/12775024.html
Copyright © 2011-2022 走看看