1. 背景
四个字,深受其害,就是记不住的break;
今天特地花了一个小时写了这段代码,当打印出来的那一刻,哭了,就是这么简单,不会的同学敲一遍(大神看3. 结果)保证会。
2. 老司机coding
package loop;
import java.util.ArrayList;
import java.util.List;
public class LoopDemo {
private List<List<String>> aa;
// 生成所需的二位数组
private List<String> getList(int a) {
List<String> list = new ArrayList<>();
list.add("赵" + a);
list.add("钱" + a);
list.add("孙" + a);
list.add("李" + a);
return list;
}
// 构造方法,类加载时执行
public LoopDemo() {
List<List<String>> aa = new ArrayList<>();
for (int i = 1; i < 4; i++) {
aa.add(getList(i));
}
this.aa = aa;
}
public static void testBreak() {
// System.out.println(new LoopDemo().aa);
List<List<String>> aa = new ArrayList<>();
aa = new LoopDemo().aa;
System.out.println("---------- 无操作结果 -----------");
for (int i = 0; i < aa.size(); i++) {
for (int j = 0; j < aa.get(i).size(); j++) {
System.out.println("[" + i + "," + j + "]=" + aa.get(i).get(j));
}
}
System.out.println("---------- break结果 -----------");
// a:
for (int i = 0; i < aa.size(); i++) {
for (int j = 0; j < aa.get(i).size(); j++) {
System.out.println("[" + i + "," + j + "]=" + aa.get(i).get(j));
if ("赵2".equals(aa.get(i).get(j))) {
// break a;
break;
}
}
}
System.out.println("---------- 内层添加标识 break结果 -----------");
for (int i = 0; i < aa.size(); i++) {
a:
for (int j = 0; j < aa.get(i).size(); j++) {
System.out.println("[" + i + "," + j + "]=" + aa.get(i).get(j));
if ("赵2".equals(aa.get(i).get(j))) {
break a;
}
}
}
System.out.println("---------- 最外层添加标识 break结果 -----------");
a:
for (int i = 0; i < aa.size(); i++) {
for (int j = 0; j < aa.get(i).size(); j++) {
System.out.println("[" + i + "," + j + "]=" + aa.get(i).get(j));
if ("赵2".equals(aa.get(i).get(j))) {
break a;
}
}
}
}
public static void main(String[] args) {
testBreak();
}
}
3. 结果打印
———- 无操作结果 ———–
[0,0]=赵1
[0,1]=钱1
[0,2]=孙1
[0,3]=李1
[1,0]=赵2
[1,1]=钱2
[1,2]=孙2
[1,3]=李2
[2,0]=赵3
[2,1]=钱3
[2,2]=孙3
[2,3]=李3
———- break结果 ———–
[0,0]=赵1
[0,1]=钱1
[0,2]=孙1
[0,3]=李1
[1,0]=赵2
[2,0]=赵3
[2,1]=钱3
[2,2]=孙3
[2,3]=李3
———- 内层添加标识 break结果 ———–
[0,0]=赵1
[0,1]=钱1
[0,2]=孙1
[0,3]=李1
[1,0]=赵2
[2,0]=赵3
[2,1]=钱3
[2,2]=孙3
[2,3]=李3
———- 最外层添加标识 break结果 ———–
[0,0]=赵1
[0,1]=钱1
[0,2]=孙1
[0,3]=李1
[1,0]=赵2