[英]What's wrong with my Recursion?
我需要使用遞歸來實現我正在嘗試實現的方法。 問題是這里的遞歸不起作用,因為我認為它會。 這是我的代碼,我將在下面進一步解釋。
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循環但是現在,我只是希望遞歸工作。 我不完全確定我提供的信息是否足夠,如果您需要更多信息,我會很樂意提供更多信息。
謝謝
遞歸:從自身調用方法。
現在, carTypes.get(j).printer( Index.get(j)+1);
此行每次調用打印機方法,但在不同的對象上。
所以,事實上你並沒有調用相同的printer
方法,因此沒有發生遞歸。
編輯:
我知道如果發生這種情況,我將不得不尋找另一個來處理我的for循環但是現在,我只是希望遞歸工作。
更換
carTypes.get(j).printer( Index.get(j)+1);
同
printer( Index.get(j)+1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.