Menu Close

JavaScript continue 语句和break语句的标签

? 右侧不能使用 break、continue语句

请注意,不能在三元运算符 ? 中使用不是表达式的语法结构。特别是,像 breakcontinue 这样的指令是不被允许的。

例如,假设我们有以下代码:


如果使用问号(即三元运算符)重写它:

它将无法运行:会出现语法错误。

这也是不要用问号运算符 ? 替代 if 的另一个原因。

break/continue 的标签

有时我们需要一次性跳出多个嵌套的循环。

例如,在下面的代码中,我们在 ij 上循环,依次提示输入从 (0,0) 到 (2,2) 的坐标:

我们需要一种方法在用户取消输入时停止整个流程。

普通的 break 只能跳出内层循环,这是不够的 —— 这时标签就派上用场了!

标签是加在循环前的一个标识符,后面带一个冒号:


下面循环中的 break <labelName> 语句会跳出到指定的标签处:

在上面的代码中,break outer 会向上查找名为 outer 的标签,并跳出该循环。

因此,控制流会直接从 (*) 跳转到 alert('Done!')

我们也可以将标签放到单独的一行:


continue 指令也可以与标签一起使用。在这种情况下,代码执行会跳转到标记循环的下一次迭代

标签不允许“跳转”到程序的任何地方

标签不允许我们跳转到代码中的任意位置。

例如,下面的代码是无法实现的:


break 指令必须位于代码块内部。从技术上讲,任何带标签的代码块都可以,例如:

……不过,99.9% 的情况下,break 都是在循环内部使用的,正如我们在上面的例子中所看到的。

continue 只可能在循环内部使用。

 

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!
Posted in JavaScript 基础