加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

label语句

发布时间:2020-12-15 08:24:19 所属栏目:Java 来源:网络整理
导读:在javascript中,我们可能很少会去用到 Label 语句,但是熟练的应用 Label 语句,尤其是在嵌套循环中熟练应用 break,continue 与 Label 可以精确的返回到你想要的程序的位置。 label语句语法 label:statement示例:start:for(var i = 0; i 5; i++){ console.

在javascript中,我们可能很少会去用到 Label 语句,但是熟练的应用 Label 语句,尤其是在嵌套循环中熟练应用 break,continue 与 Label 可以精确的返回到你想要的程序的位置。

label语句语法

label:statement
示例:
start:for(var i = 0; i < 5; i++){
    console.log(i)
}

?

举个栗子:(没添加label)

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

这里当 i 和 j 等于5的时候只退出了 j 循环 ,输出结果是95

?

添加了label

var num = 0;
outermost:
for(var i = 0; i < 10; i++){
    for(var j = 0; j < 10; j++){
        console.log(‘i‘,i,‘j‘,j,‘num‘,num)
        if(i == 5 && j ==5){
            console.log(‘等于5了‘)
            break outermost;
        }
        num++;
    }
}
console.log(num); //55

?

这里break语句带了一个参数:要返回到的标签(返回到哪里),添加这个标签的结果将导致break语句不仅会退出 j 循环,还会退出 i 循环

?

再看下面的例子,注意outPoint:

var num = 0;
for (var i = 0; i < 10; i++) {
    outPoint:
    for (var j = 0; j < 10; j++) {
        for (var k = 0; k < 10; k++) {
            console.log(‘i‘,‘k‘,k,num)
            if (i == 5 && j == 5 && k == 5) {
                console.log(‘等于5了‘)
                break outPoint;
            }
            num++
        }
    }
}
console.log(num); // 955 ,如果没有label语句 输出的是995

?有label:

?

?无label:

?

可以看出有label语句的退出了 k 和 j 循环,无label语句的只退出k循环

?

continue语句中使用label:

var num = 0;
outPoint:
for (var i = 0; i < 10; i++) {
    for (var j = 0; j < 10; j++) {
        console.log(‘i‘,num)
        if (i == 5 && j == 5) {
            console.log(‘等于5‘)
            continue outPoint;
        }
        num++
    }
}
console.log(num) // 95,没使用label输出的是99

有label执行结果:

?

?无label执行结果:

continue语句会强制继续执行循环---退出内部循环,执行外部循环,当 j 是5是,continue语句执行,意味着内部循环少执行了5次。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读