return跳出雙重for迴圈
阿新 • • 發佈:2019-02-12
場景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;
}
}
}
}