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