1 /**
2 * File: com.dol.dop.exams.BreakAndContinue.java
3 * CreateDate: 2009-12-3
4 * Author: xulei
5 * Despriction:多重循环中break 和conitnue的用法
6 */
7 package com.dol.dop.exams;
8
9 public class BreakAndContinue {
10 public void test() {
11 int i = 0 ;
12 // 外部标记
13 outer: do {
14 System.out.println( " outer i is: " + i);
15 // 内部标记
16 inner: for (; i < 10 ; i ++ ) {
17 System.out.println( " inner i is: " + i);
18 if (i == 1 ) {
19 System.out.println( " continue " );
20 // 中断单前循环,进入下一循环
21 continue ;
22 }
23 if (i == 2 ) {
24 System.out.println( " continue outer " );
25 // 注意此处i++,如果注释掉会死循环,因为执行完continue outer后,
26 // 不会触发for(; i < 10; i++)中的i++递增因子
27 i ++ ;
28 // 中断单前循环,跳到outer标签处,执行do循环
29 continue outer;
30 }
31 if (i == 3 ) {
32 System.out.println( " continue inner " );
33 // 此处如果添加i++,会和for中的i++一起执行两次,
34 // i++;
35
36 // 中断单前循环,跳到inner 标签,执行接着的for循环
37 continue inner;
38 }
39 if (i == 4 ) {
40 System.out.println( " break " );
41 // 这里的i++不能注释,否则为死循环,
42 // 因为break和break+标签都不会触发for(; i < 10; i++)中的i++递增因子
43 i ++ ;
44 // 退出内部循环for
45 break ;
46 }
47 if (i == 7 ) {
48 System.out.println( " break inner " );
49 i ++ ;
50 // 中断并跳出inner所指向的for循环,不过由于外层的do循环
51 // 程序会继续进入for循环
52 break inner;
53 }
54 if (i == 9 ) {
55 System.out.println( " break outer " );
56 // i++;
57 // 中断并跳出outer所指的do循环
58 break outer;
59 }
60 }
61 } while ( true );
62
63 }
64
65 /**
66 * @param args
67 */
68 public static void main(String[] args) {
69 // TODO Auto-generated method stub
70 BreakAndContinue bc = new BreakAndContinue();
71 bc.test();
72 }
73
74 }