跳到主要内容

break,continue,tag跳循环

break 跳出循环

  • forwhile 循环, 当达到一定条件时, 我们希望提前结束循环
  • for
for (let i = 0; i < 10; i++) {
logd("i=", i)
if (i === 3) { // 当i=3 时,退出for循环
break
}
}
logd("循环结束")
// 返回 i= 0
// 返回 i= 1
// 返回 i= 2
// 返回 i= 3
// 返回 循环结束
  • while
let i = 0
while (true) {
logd("i=", i)
if (i === 3) { // 当i=3 时,退出while循环
break
}
i++
}
logd("循环结束")
// 返回 i= 0
// 返回 i= 1
// 返回 i= 2
// 返回 i= 3
// 返回 循环结束

continue 跳过本次循环

  • 当达到某个条件时, 我们不希望执行本次循环后面的内容,直接执行下一次循环
for (let i = 0; i < 4; i++) {
if (i === 2) { // 当i=2 时,跳过本次for循环
continue
}
logd("i=", i)
}
logd("循环结束")
// 返回 i= 0
// 返回 i= 1
// 返回 i= 3
// 返回 循环结束
  • while
let i = 0
while (true) {
i++
if (i === 2) { // 当i=2 时,跳过本次while循环
continue
}
logd("i=", i)
}

// 返回 i= 1
// 返回 i= 3
// 返回 i= 4
// 返回 i= 5
...

tag 跳到标记位,结束循环

  • 当多个循环嵌套使用时, 想要直接结束所有循环, 就需要借助此方法
  • forwhile 前加入 tag: 来标记跳出位
  • 使用 break tag 来跳出到标记位
  • tag 只是一个英文标签的翻译,并不必须写tag单词
tag_标记: for (let i = 0; i < 100; i++) {
logd("i=", i)
for (let j = 0; j < 100; j++) {
logd("j=", j)
if (j === 2) {
break tag_标记
}
}
logd("j循环结束")
}
logd("所有循环结束")
// 返回 i= 0
// 返回 j= 0
// 返回 j= 1
// 返回 j= 2
// 返回 所有循环结束
tag_标记: while (true) {
for (let j = 0; j < 100; j++) {
logd("j=", j)
if (j === 2) {
break tag_标记
}
}
logd("j循环结束")
}
logd("所有循环结束")
// 返回 j= 0
// 返回 j= 1
// 返回 j= 2
// 返回 所有循环结束