实现类似goto的操作
goto
尽管goto仍是Java中的一个保留字,但在语言中并未使用它。然而,Java也能完成一些类似跳转的操作。break与continue使用了标签机制。
标签是后面跟有冒号的标识符
在Java中,标签起作用的唯一的地方刚好是在迭代语句之前。标签与迭代语句之间不建议置入任何语句。
在迭代之前设置标签的唯一理由是:我们希望在其中嵌套另一个迭代或者一个开关。break和continue关键词通常只中断当前循环,但若随标签一起使用,它们就会中断循环,直到标签所在的地方。
在(1)中,break中断内部迭代,回到外部迭代。在(2)中,continue使执行点移回内部迭代的起始处。在(3)中,continue label1同时中断内部迭代以及外部迭代,直接转到label1处;随后,它实际上是继续迭代过程,但却从外部迭代开始。在(4)中,break label1也会中断所有迭代,并回到label1处,但并不重新进入迭代。也就是说,它实际是完全中止了两个迭代。
注意
在Java里需要使用标签的唯一理由就是因为有循环嵌套存在,而且想从多层嵌套中break或continue。
Last updated