java中跳出多重循环的实践心得

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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值