0

実装しようとしているメソッドに再帰を使用する必要があります。問題は、ここでの再帰が思ったように機能しないことです。これが私が持っているコードです。以下でさらに説明します。

    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 ループを処理するために別のものを見つける必要があることはわかっていますが、今のところ、再帰を機能させたいだけです。私が提供した情報が十分かどうかは完全にはわかりませんので、さらに情報が必要な場合はお尋ねください。喜んでさらに情報を提供します.

ありがとう

4

1 に答える 1

2

再帰: それ自体からメソッドを呼び出す。

さて、carTypes.get(j).printer( Index.get(j)+1);この行は毎回異なるオブジェクトでプリンターメソッドを呼び出します。

したがって、実際には同じprinterメソッドを呼び出していないため、再帰は発生していません。

編集 :

これが発生した場合、for ループを処理するために別のものを見つける必要があることはわかっていますが、今のところ、再帰を機能させたいだけです。

交換

carTypes.get(j).printer( Index.get(j)+1);

printer( Index.get(j)+1);
于 2012-04-30T00:14:40.510 に答える