某山寨

z4zr的待调教小窝

Java中goto的后继者们

Tag:java goto

Java中goto的后继者们

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

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

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

  • continue会在该层循环的起始处继续执行。
  • 有标签的continue会在标签位置继续执行(无视内外循环关系)。
  • break会中断当前循环。
  • 有标签的break会中断当前循环,并移到该标签指示的循环的末尾(不重新进入标签所指向循环)。
  • 标签只能在被调用处的前面0.0
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

仅有一条评论

  1. 博主有才啊

添加新评论

文章二维码