在循环结构中,经常需要使用关键字break
和continue
来控制跳转;
遇到break
,就会跳出循环结构,执行循环体后面的代码;
遇到continue
,就会跳出本次循环,进入下一次循环;
那么,假如有嵌套循环,我在内循环中,想直接跳转到最外层循环,执行最外层循环体后面的代码,该怎么做呢?
在JS中,有一个类似于C/C++中的goto语句,通常并不推荐goto语句,因为它破坏了结构;
它就是标签,它的用法是这样的,标签名:循环体
;
配合break 标签名
进行跳转,具体看下面代码:
此处标签名是here
,后面跟着双层for循环,在内层循环通过break here
,直接跳出到最外层循环的here
处,然后执行最外层循环后面的代码,输出了get out
;
注意,虽然break here
按照逻辑来说,是跳转到标签here
那里,然后按理说,应该是再继续here
后面的代码,也就是又进入了双层for循环;但是实际上不是的,实际上是执行here
所在的循环体的后面的代码;
这就是标签的反直觉的用法,很容易迷惑大家。
另外,标签必须在break
的前面,如果在后面,break
是无法跳转的。