Lable语句用法

Lable语句用法(摘自Javascript高级程序设计)


break 和 continue 语句都可以与 label 语句联合使用,从而返回代码中特定的位置。这种联合
使用的情况多发生在循环嵌套的情况下,如下面的例子所示:

  • break
var num = 0;
outermost:
for (var i=0; i < 10; i++) {
    for (var j=0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break outermost;
        }
        num++;
    }
}
alert(num); //55

在这个例子中,outermost 标签表示外部的 for 语句。如果每个循环正常执行 10 次,则 num++
语句就会正常执行 100 次。换句话说,如果两个循环都自然结束,num 的值应该是 100。但内部循环中
的 break 语句带了一个参数:要返回到的标签。添加这个标签的结果将导致 break 语句不仅会退出内
部的 for 语句(即使用变量 j 的循环),而且也会退出外部的 for 语句(即使用变量 i 的循环)。为此,
当变量 i 和 j 都等于 5 时,num 的值正好是 55。

自制流程图(见笑了)

Created with Raphaël 2.1.0 开始 添加标签outermost i<10 i++ j<10 j++ i==5 && j==5 跳到标签outermost,由于是break退出两个循环 结束 num++ yes no yes no yes no

同样,continue 语句也可以像这样与 label 语句联
用,如下面的例子所示:

  • continue
var num = 0;
outermost:
for (var i=0; i < 10; i++) {
    for (var j=0; j < 10; j++) {
        if (i == 5 && j == 5) {
            continue outermost;
        }
        num++;
    }
}
alert(num); //95

在这种情况下,continue 语句会强制继续执行循环——退出内部循环,执行外部循环。当 j 是 5
时,continue 语句执行,而这也就意味着内部循环少执行了 5 次,因此 num 的结果是 95。

自制流程图(见笑了)

Created with Raphaël 2.1.0 开始 添加标签outermost i<10 i++ j<10 j++ i==5 && j==5 跳到标签outermost,由于是continue继续第一层循环 结束 num++ yes no yes no yes no

虽然联用 break、continue 和 label 语句能够执行复杂的操作,但如果使用过度,也会给调试
带来麻烦。在此,我们建议如果使用 label 语句,一定要使用描述性的标签,同时不要嵌套过多的循环。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值