簡體   English   中英

我的遞歸出了什么問題?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM