我需要使用遞歸來實現我正在試圖實現的方法。問題是這裏的遞歸不像我想的那樣工作。這裏是我的代碼,我將在下面進一步解釋。我的遞歸有什麼問題?
public void printer(int level) {
System.out.println("A Car " + getId());
for (int j=0; j< carTypes.size(); j++) {
carTypes.get(j).printer(Index.get(j)+1);
if (carTypes.get(j) instanceof Toyota) {
level = 1;
}
else {
level = 1;
for (int i = 0; i <= j; i++){
if (j == Index.size()-1)
break;
if (Index.get(i) == Index.get(j+1)) {
number++;
}
}
}
System.out.println("Is recursion working right?");
}//End of for loop
}
我遇到的問題是我希望carTypes.get(j).printer(Index.get(j)+1)之後的所有東西;將被忽略,該方法將循環。我知道如果發生這種情況,我將不得不尋找另一個處理我的for循環,但現在,我只是想遞歸工作。我不完全確定我提供的信息是否足夠,如果您需要更多信息,只需詢問我會樂意提供更多信息。
感謝
什麼樣的調試你這樣做的遠? –
我有一種感覺,有幾種任務被混淆到一種方法中;您是否應該有一種知道如何打印單輛汽車的低級方法,以及知道如何在多輛汽車上調用低級方法的高級方法? – sarnold
我基本上只是打開Eclipse中的調試視角(我對編程還很陌生),並試圖確切地知道發生了什麼,但即使這樣也沒有給我具體的東西,因此我決定在這裏發佈它。 – Ester