java多重循环中break,conitnue以及相关标签的用法

来源:互联网 发布:淘宝小二有效期是什么 编辑:程序博客网 时间:2024/06/04 20:09

/**
 * File: com.dol.dop.exams.BreakAndContinue.java
 * CreateDate: 2009-12-3
 * Author: xulei
 * Despriction:多重循环中break 和conitnue的用法
 */
package com.dol.dop.exams;

public class BreakAndContinue {
 public void test() {
  int i = 0;
  // 外部标记
  outer: do {
   System.out.println("outer i is:" + i);
   // 内部标记
   inner: for (; i < 10; i++) {
    System.out.println("inner i is: " + i);
    if (i == 1) {
     System.out.println("continue");
     // 中断单前循环,进入下一循环
     continue;
    }
    if (i == 2) {
     System.out.println("continue outer");
     // 注意此处i++,如果注释掉会死循环,因为执行完continue outer后,
     // 不会触发for(; i < 10; i++)中的i++递增因子
     i++;
     // 中断单前循环,跳到outer标签处,执行do循环
     continue outer;
    }
    if (i == 3) {
     System.out.println("continue inner");
     // 此处如果添加i++,会和for中的i++一起执行两次,
     // i++; 

    //中断单前循环,跳到inner 标签,执行接着的for循环
     continue inner;
    }
    if (i == 4) {
     System.out.println("break");
     // 这里的i++不能注释,否则为死循环,
     // 因为break和break+标签都不会触发for(; i < 10; i++)中的i++递增因子
     i++;
     // 退出内部循环for
     break;
    }
    if (i == 7) {
     System.out.println("break inner");
     i++;
     // 中断并跳出inner所指向的for循环,不过由于外层的do循环
     // 程序会继续进入for循环
     break inner;
    }
    if (i == 9) {
     System.out.println("break outer");
     // i++;
     // 中断并跳出outer所指的do循环
     break outer;
    }
   }
  } while (true);

 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  BreakAndContinue bc = new BreakAndContinue();
  bc.test();
 }

}