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

代码
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 }

from http://edu.codepub.com/2009/1203/18437.php

posted on 2011-02-11 10:31  MorningChen  阅读(1526)  评论(0编辑  收藏  举报

导航