JAVA如何跳出多层循环

1. break、continue、return 的区别:

break默认是跳出最里层的循环,也就是break所在的最近的那层循环

continue是终止本次循环,继续下次循环

return 结束当前方法

3层循环的简单测试:

 

 1 for (int i = 0; i < 3; i++) {
 2             for1:
 3             for (int j = 0; j <3; j++) {
 4                 for2:
 5                     for (int m = 0; m < 3; m++) {
 6                         for3:
 7                             System.out.println(i+"--"+j+"--"+m);
 8                     }
 9             }
10         }

 

 1 0--0--0
 2 0--0--1
 3 0--0--2
 4 0--1--0
 5 0--1--1
 6 0--1--2
 7 0--2--0
 8 0--2--1
 9 0--2--2
10 1--0--0
11 1--0--1
12 1--0--2
13 1--1--0
14 1--1--1
15 1--1--2
16 1--2--0
17 1--2--1
18 1--2--2
19 2--0--0
20 2--0--1
21 2--0--2
22 2--1--0
23 2--1--1
24 2--1--2
25 2--2--0
26 2--2--1
27 2--2--2

 

简单测试break:

 

 1 for (int i = 0; i < 3; i++) {
 2             for1:
 3             for (int j = 0; j <3; j++) {
 4                 for2:
 5                     for (int m = 0; m < 3; m++) {
 6                         for3:
 7                             if (m == 1) {
 8                                 break;
 9                             }
10                             System.out.println(i+"--"+j+"--"+m);
11                     }
12             }
13         }

 

1 0--0--0
2 0--1--0
3 0--2--0
4 1--0--0
5 1--1--0
6 1--2--0
7 2--0--0
8 2--1--0
9 2--2--0

 

简单测试continue:

 

 1 for (int i = 0; i < 3; i++) {
 2             for1:
 3             for (int j = 0; j <3; j++) {
 4                 for2:
 5                     for (int m = 0; m < 3; m++) {
 6                         for3:
 7                             if (m == 1) {
 8                                 continue;
 9                             }
10                             System.out.println(i+"--"+j+"--"+m);
11                     }
12             }
13         }
 1 0--0--0
 2 0--0--2
 3 0--1--0
 4 0--1--2
 5 0--2--0
 6 0--2--2
 7 1--0--0
 8 1--0--2
 9 1--1--0
10 1--1--2
11 1--2--0
12 1--2--2
13 2--0--0
14 2--0--2
15 2--1--0
16 2--1--2
17 2--2--0
18 2--2--2

简单测试return:

 

 1 for (int i = 0; i < 3; i++) {
 2             for1:
 3             for (int j = 0; j <3; j++) {
 4                 for2:
 5                     for (int m = 0; m < 3; m++) {
 6                         for3:
 7                             if (m == 1) {
 8                                 return;
 9                             }
10                             System.out.println(i+"--"+j+"--"+m);
11                     }
12             }
13         }

 

1 0--0--0

 

2. 如何跳出多层循环

思路:对每一层设置标志位,设置方法---变量名:

注意这里的冒号至关重要

简单测试:

 1 for (int i = 0; i < 3; i++) {
 2             for1:
 3             for (int j = 0; j <3; j++) {
 4                 for2:
 5                     for (int m = 0; m < 3; m++) {
 6                         for3:
 7                             if (m == 1) {
 8                                 break for2;
 9                             }
10                             System.out.println(i+"--"+j+"--"+m);
11                     }
12             }
13         }

 

1 0--0--0
2 0--1--0
3 0--2--0
4 1--0--0
5 1--1--0
6 1--2--0
7 2--0--0
8 2--1--0
9 2--2--0


 

 

posted @ 2018-08-01 14:16  bbxnhm  阅读(30934)  评论(0编辑  收藏  举报