私は長い間前にクラスで基本的な再帰問題を書いていましたが、どのように出力が得られるかを覚えようとしています。Javaの再帰出力は前方と後方の名前を出力する
これは、基本的に前方と後方に名前を表示します。私はそれが名前の転送方法を理解していますが、名前を後ろにどのように印刷するかはわかりません。私は何が起こっているのかを段階的に見るためにデバッグを行いましたが、名前が印刷された後にどのようにインデックスが減少しているのか理解できません。
public class CharRecursion
{
public static void printName(String name, int index)
{
if(index > name.length() - 1)
{
return;
}
else
{
System.out.println(name.charAt(index));
printName(name, index + 1);
System.out.println(name.charAt(index));
}
}
public static void main(String[] args)
{
printName("Brian", 0);
}
}
出力は後方部分が第二System.out.println(name.charAt(index));
の文から来BriannairB
2番目の 'System.out.println'を見てください。再帰が最後に達した後で呼び出されています。 –
Jaroslawのコメントに加えて、 'index + 1'は' index'の値を変更しないことに注意してください。したがって、次の行には、同じ文字が印刷されます。 –
ありがとうございます。私は2番目のSystem.out.printlnがそれを引き起こしていることを理解していますが、そのインデックスは文字が後ろ向きになって減少していますか?私は単純なものを逃しているに違いない。 –