《JavaScript高级程序设计》学习笔记6:由label标签理解break和continue

一页页的看书才发现有label语句这么个东东。书中给出的例子是这样的:

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++;
    }
}

console.log(num);// 55
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++;
    }
}

console.log(num);// 95

如果我们把标签去掉呢:

var num = 0;

for (var i = 0; i < 10; i++) {
    for (var j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break;
        }
        num++;
    }
}

console.log(num);// 95
var num = 0;

for (var i = 0; i < 10; i++) {
    for (var j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
            continue;
        }
        num++;
    }
}

console.log(num);// 99

可以看到,只使用break的结果等于使用continue outermost的结果。怎么去理解呢?

这里复杂的地方是嵌套循环,即两层for循环,我们先回忆一下break和continue的基本用法:

1)立即退出循环:这里注意break和continue只能作用于一层,也就是说,在两层嵌套循环时(不使用标签),break和continue不会对外层循环有任何影响。

2)continue是立即退出本次循环:本次循环中,continue语句之后的语句不会再执行。

3)break是退出整个循环:直接执行整个循环之后的语句。

然后可以总结出有标签的用法:

1)立即跳到标签位置

2)continue从标签位置继续执行

3)break跳过打标签的所有语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值