/**
* 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();
}
}