1. 程式人生 > >JAVA中迴圈的遞迴問題

JAVA中迴圈的遞迴問題

//int j=0;
private void xuhao() {
for (int j = 0; j < 5; j++) {
if (zu>0&&zu<7) {
   dosth();           
}else {
xuhao();
// break;
}
}
}


問題,當呼叫遞迴時 會出現兩次迴圈 :遞迴後的迴圈結束 再回到遞迴前的迴圈 兩次迴圈

原因 j是區域性變數,當遞迴時,又定義了新的j,而原來的也還在 所以導致兩次迴圈

解決1 : 將j變成全域性變數 

解決2 :在遞迴後 break 

解決3:

使用continue

private void xuhao() {
int j=0;
for(;j<5;) {           
if (zu>0&&zu<7) {
   dosth(); 
    j++;      
}else {
continue;
}
}
}

套用遞迴那麼每次出錯都會從第一次開始

而用continue就會從當前出錯位置開始