摘自Thinking in Java
首先声明不推荐使用!!本文提及的也不在于goto

goto依旧是Java中的保留字,但是Java语言并没有使用它。但是Java中可以使用break和continue完成类似的效果。
break为中断当前所在的循环
continue为跳过当前所在的循环
当我们定义了一个标签后,可以将标签加在break或continue的后面实现特定的跳转。

注意:
当使用break outer跳到外部循环前方后,将不会再执行外部循环。

public class p147 {
  public static void main(String[] args) {
    int i = 0;
    outer: 
      for (; true;) {//外部循环
      System.out.print('*');
      inner: 
        for (; i < 10; i++) {//内部循环
        System.out.println("i = " + i);
        if (i == 2) {
          System.out.println("continue");
          continue;
        }
        if (i == 3) {
          System.out.println("break");
          i++;
          break;
        }
        if (i == 7) {
          System.out.println("continue outer");
          i++;
          continue outer;
        }
        if (i == 8) {
          System.out.println("break outer");
          break outer;
        }
        for (int k = 0; k < 5; k++) {
          if (k == 3) {
            System.out.println("continue inner");
            continue inner;
          }
        }
      }
    }

  }
}

//output:
*i = 0
continue inner
i = 1
continue inner
i = 2
continue
i = 3
break
*i = 4
continue inner
i = 5
continue inner
i = 6
continue inner
i = 7
continue outer
*i = 8
break outer
原创文章采用 CC BY-NC-SA 4.0协议 进行许可,转载请著名转自: Java中goto的后继者们

1 评论

  1. 博主有才啊