2016-08-27 6 views
-3
public static void recursivePrint(int[] array, int index) { 
     if (index != array.length) { 
     recursivePrint(array, index + 1); 
     System.out.println(array[index]); 
    } 
} 

3行目はどのように機能しますか?入力をどのように逆転させるのですか?これはどのように入力を逆転させるのですか?

+2

再帰によって。あなたの 'の'の行を交換し、何が起こるかを見てください。 – tkausl

+0

デバッガのコードをステップ実行し、コールスタックを監視し、出力を監視します。コードがどのように機能するかを理解するには、通常、デバッガでステップ実行することが最善の方法です。 –

+0

再帰をより良く理解するには、鉛筆をとり、紙の上でメソッドを実行してみてください。あなたはそれがどのように機能するか見るでしょう。私は数年前に同じことをしました:) –

答えて

0

ここでは再帰関数を使用しています。 2行目で、indexがarray.lengthと等しくなければ、index + 1で関数を再度呼び出します。しかしそれでも何も印刷されませんでした。再帰呼び出しは、2行目の条件が失敗するまで続きます。例array.length = 3の場合、インデックス値が3行目2になると条件が失敗し、行4が実行され、値を出力している間に各再帰型関数呼び出しから1つずつ出力されます。したがって、値は逆の順序で印刷されます。

関連する問題