JS | 没有goto下神奇的label

label:可使用一个标签来唯一标记一个循环,然后使用 break 或 continue 语句来指示程序是否中断循环或继续执行。

由于js并没有goto 语句,标记只能和 break 或 continue 一起使用,导致增加了跳出多层循环的复杂性。

例如:

// Output is:
//   "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"

输出以上,你怎样通过两个for循环来进行?

var i, j;

loop1:
for (i = 0; i < 3; i++) {      
   loop2:
   for (j = 0; j < 3; j++) {   
      if (i == 1 && j == 1) {
         continue loop1;
      }
      console.log("i = " + i + ", j = " + j);
   }
}

在这里插入图片描述
上面是continue中使用label
现在演示一下break,展示区别:

var i, j;

loop1:
for (i = 0; i < 3; i++) {      
   loop2:
   for (j = 0; j < 3; j++) {   
      if (i == 1 && j == 1) {
         break loop1;
      }
      console.log("i = " + i + ", j = " + j);
   }
}

在这里插入图片描述

在标记块中使用 break
foo: {
  console.log('face');
  break foo;
  console.log('this will not be executed');
}
console.log('swap');

在这里插入图片描述

//参考文献
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/label

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值