1. 程式人生 > >return跳出雙重for迴圈

return跳出雙重for迴圈

場景1:web應用

return是可以跳出雙重for迴圈

for(int i=0;i<10;i++){

for(int j=0;j<10;j++){

            return "success";

}

}

這個語法是可以跳出for迴圈的,儘管是雙重迴圈。

場景2:純java,當內層迴圈終止時為外層迴圈增加判斷標誌位

/**
	 * 對於for迴圈而言
	 * break只能跳出本迴圈
	 * 如果有多個迴圈,可以增加標誌位
	 */
	@Test
	public void doubleFor(){
		boolean k=false;//外層迴圈是否break標誌位,預設為false
		
		
		for(int i=0;i<10;i++){//外層迴圈
			System.out.println("i="+i);//輸出外圍迴圈的迴圈次數
			
			for(int j=0;i<10;j++){//內層迴圈
				System.out.println("j="+j);
				
				//如果 j==1,內層迴圈結束,並修改 標誌變數k 的值為true
				if(j==1){
					k=true;
					break;
				}
			}
			
			
			if(k){//如果k為true,則終止外圍迴圈
				break;
			}
		}
	}

場景3:純java,為外層迴圈設定標籤,名字是你自定義
/**
	 * 為你最外圍的迴圈增加一個名字
	 * 自定義名字:for(XXX){
	 * 	for(XXX){
	 * 		...無限巢狀for(XXX){if(true) break 自定義名字;}
	 * 	}
	 * }
	 * 可以直接跳出最外圍的名字
	 */
	@Test
	public void testForLabel(){
		//writeName是你自定義的
		writeName:for(int i=0;i<10;i++){
			System.out.println("i="+i);
		    for(int j=0;j<10;j++){   
		    	System.out.println("j="+j);
		    	for(int k=0;k<10;k++){
		    		System.out.println("k="+k);
		    		if(k==1){
		    			break writeName;//跳出整個迴圈
		    		}
		    		
		    	}
		        
		    }
		}
	}


場景4 使用return

/**
	 * 純java使用 return也可以跳出雙重迴圈,方法未void
	 */
	@Test
	public void testForReturn(){
		for(int i=0;i<10;i++){//外層迴圈
			System.out.println("i="+i);//輸出外圍迴圈的迴圈次數
			
			for(int j=0;j<10;j++){//內層迴圈
				System.out.println("j="+j);
				if(j==2){
					return;
				}
			}
		}
	}