流控制 break/continue 与 label 的组合

一、定义

  基本形式:

    for (单次表达式;条件表达式;末尾循环体) {

      中间循环体;

    }

如:

    for (var i = 1; i < 10; i++) {
      if (i % 5 == 0) {
        break; // or continue;
      }
    }

  break :立即退出循环,强制执行该循环后面的语句;break之后,末尾循环体不再执行,如示例i++不执行;

  continue:立即退出循环,然后从循环顶部开始继续执行;continue之后,末尾循环体仍然执行,如示例i++执行;

  label:添加代码标签,便于break、continue引用。

二、label的使用

  先看如下示例:

var tNum = 0;
var oNum = 0;
for (var i = 0; i < 10; i++) {
    for(var j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break;
        }
        tNum++;
    }
    oNum++;
}
console.log(‘tNum = ‘ + tNum++);
console.log(‘oNum = ‘ + oNum++);
运行结果:
tNum = 95
oNum = 10
var tNum = 0;
var oNum = 0;
outermost:
for (var i = 0; i < 10; i++) {
    for(var j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break outermost;
        }
        tNum++;
    }
    oNum++;
}
console.log(‘tNum = ‘ + tNum++);
console.log(‘oNum = ‘ + oNum++);
运行结果:
tNum = 55
oNum = 5

  该示例为嵌套循环下,break是否启用label标签的对比运行代码和结果,其中的outermost就是自定义的label名。

  由运行结果我们可以得到如下结论:

a、如左侧示例,在未设置label时,break仅跳出一层循环,外层循环仍然执行了10次;

    b、如右侧示例,在设置了label时,break跳出了两层循环,外层循环与内层循环同时停止;

    c、所以,在多层嵌套的情况下,通过设置label标签,可以跳出多层循环。

  continue的类似执行结果(将break替换成continue),如下:

未设置label标签:  

tNum = 99

oNum = 10

  未设置label标签:  

  tNum = 95

  oNum = 9

  结论与break的相同。

总结,label标签可结合break、continue使用,可以辅助跳出多层循环或者跳到指定位置。

时间: 2024-08-06 08:10:22

流控制 break/continue 与 label 的组合的相关文章

break,continue和label语句

break 语句会立即退出循环, var num = 0; for (var i=1; i < 10; i++) { if (i % 5 == 0) { break; } num++; } alert(num); //4 强制继续执行循环后面的语句.而 continue 语句虽然也是立即退出循环,但退出循环后会从循环的顶 部继续执行. var num = 0; for (var i=1; i < 10; i++) { if (i % 5 == 0) { continue; } num++; }

break continue label 学习笔记

class TestBreakContinue { public static void main(String[] args) { for(int i = 1; i <= 10; i++){ if(i % 4 == 0){ //break; continue; } System.out.println(i); } label: for(int i = 1;i < 5;i++){ for(int j = 1; j<=10; j++){ if(j % 4==0){ //break labe

linux 循环结构中的 break continue exit return区别

1 概述 在脚本的循环中,需要用到break,continue,exit.来控制循环.利用return来获取函数的返回值.本文将对这四个命令的使用做介绍 break [N]:提前结束第N层循环,最内层为第1层 continue [N]:提前结束第N层的本轮循环,而直接进入下一轮判断:最内层为第1层 exit 命令终止脚本 2  break continue exit   对比 2.1 break 和continue 测试 假设一个循环体内,总共嵌套了3层循环,总循环体N为3,break 和con

[第三节] Python流程控制语句 - if, while, for, break, continue

目录: 一. 条件判断语句 - if 二. 循环语句 - while & for 三. break & continue语句. 四. 练习题 正文: 一, 条件判断语句 - if: 1) 第一种语法: if 条件:      代码块 2) 第二种语法: if 条件:      内容一     内容二  else:     内容三      内容四 3) 第三种语法: if 条件1:      代码块  elif 条件2:      代码块  elif 条件3:      代码块  else

js中退出语句break,continue和return 比较

在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一起讨论 这两个应用的范围是退出循环或者switch语句,在其他地方使用会导致错误: break:由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的. 举例: for(var i=1;i<=10;i++) { if(i==6) { break;

js中退出语句break,continue和return 比较 (转载)

在 break,continue和return 三个关键字中, break,continue是一起的,return 是函数返回语句,但是返回的同时也将函数停止 首先:break和continue两个一起讨论 这两个应用的范围是退出循环或者switch语句,在其他地方使用会导致错误: break:由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的. 举例: for(var i=1;i<=10;i++) { if(i==6) { break;

C#break ,continue, return区别详解 [转载]

C#编程语法中break ,continue, return这三个常用的关键字的学习对于我们编程开发是十分有用的,那么本文就向你介绍break ,continue, return具体的语法规范. C#编程语法中我们会碰到break ,continue, return这三个常用的关键字,那么关于这三个关键字的使用具体的操作是什么呢?我们在使用这三关键字的时候需要注意和需要理解的规则是什么呢?让我们开始介绍吧: 一.C#编程语法之break语句: break语句会使运行的程序立刻退出包含在最内层的循

[java学习笔记]java语言基础概述之转义字符&amp;break&amp;continue

1.转义字符 \t:制表符 \n:回车 \b:退格 \r:回车 \":双引号 \\:反斜线(常用于文件路径的书写中)   windows系统中回车符其实是由两个符号组成的,\r\n linux系统中回车符是\n 2.break&continue break(跳出)语句:应用范围是选择结构(switch语句)和循环结构 continue(继续)语句:应用于循环结构 注意: 这两个语句离开应用范围是没有意义的,编译会报错. 这两个语句单独存在下面都不可以有语句,因为执行不到.一般使用if判断

PHP100-第五讲 PHP5.4 的while / for / break / continue、PHP5.4 的系统函数和自定义函数

PHP5.4 的while / for / break / continue.PHP5.4 的系统函数和自定义函数 论坛交流:http://bbs.php100.com/read-htm-tid-150407.html PHP5.4 的while / for / break / continue 在PHP编写代码时,我们经常需要让相同的代码块运行很多次.这时候就可以在代码中使用循环语句来完成这个任务.PHP的循环结构类似C中模式,有while.do-while.for PHP5.4 的系统函数和