java中跳出多重循环
下面分别列举这四中方法吧,
//break out;
public static void main(String[] args) {
out:
for(int i = 0; i < 10 ; i++) {
for(int j = 0; j < 10 ; j++) {
for(int k = 0; k < 10 ; k++) {
System.out.println(i+"-"+j+"-"+k);
break out;
}
}
}
第一种,break out; 自己做之前那个数组顺序对比时,循环较深,次数也较多,采用break out 时出现了条件成功但不跳出的情况,只在z开头的字符串组合中跳出了循环,不知道是什么原因
汗-_-||
临时试了一下,原来是自己out放错位置了,out应放在自己循环的最外面
for(a=0;a<=25;a++) {
out:
//错误位置,在这里只跳出内层3个循环到第一个for循环,上个代码片是修正后的正确代码
for(b=0;b<=25;b++) {
for(c=0;c<=25;c++) {
for(d=0;d<=25;d++) {
key3=s[a]+s[b]+s[c]+s[d];
System.out.println(key3);
if (Authkey.equals(key3)) {
System.out.println("==========================对比成功======================");
System.out.println("123--"+a+"-");
System.out.println(key3);
break out;
}
else System.out.println("false"+"-"+a+"-");
}
}
}
}
下面是关于return;跳出循环
for(a=0;a<=25;a++) {
for(b=0;b<=25;b++) {
for(c=0;c<=25;c++) {
for(d=0;d<=25;d++) {
key3=s[a]+s[b]+s[c]+s[d];
System.out.println(key3);
if (Authkey.equals(key3)) {
System.out.println("==========================对比成功======================");
System.out.println("123--"+a+"-");
System.out.println(key3);
return ;
}
else System.out.println("false"+"-"+a+"-");
}
}
}
}
在自己的实例中测试,准确跳出;
下面是关于boolean标记的测试,
boolean key = true;
for(a=0;a<=25;a++) {
for(b=0;b<=25;b++) {
for(c=0;c<=25;c++) {
for(d=0;d<=25&&key;d++) {
key3=s[a]+s[b]+s[c]+s[d];
System.out.println(key3);
if (Authkey.equals(key3)) {
System.out.println("==========================对比成功======================");
System.out.println("123--"+a+"-");
System.out.println(key3);
key = false;
}
else System.out.println("false"+"-"+a+"-");
}
}
}
}
经测试,准确跳出。
下面是关于try抛异常的测试
try {
for(a=0;a<=25;a++) {
for(b=0;b<=25;b++) {
for(c=0;c<=25;c++) {
for(d=0;d<=25;d++) {
key3=s[a]+s[b]+s[c]+s[d];
System.out.println(key3);
if (Authkey.equals(key3)) {
System.out.println("==========================对比成功======================");
System.out.println("123--"+a+"-");
System.out.println(key3);
throw new Exception();
}
else System.out.println("false"+"-"+a+"-");
}
}
}
}
}
catch (Exception E) {
E.printStackTrace();
}
经测试,准确停止循环;
啊·····综上,bug原来是是我自己产生的,哎!细心啊
(以上几种方法参考了这位博主的文章:https://blog.csdn.net/qq_36433857/article/details/81321510)