以下のプログラムの読み方が分からなくて困っています。
public
1 public static int f(int n) { 2 System.out.println(n); 3 int r; 4 if(n==0) r = 1; 5 else r = f(n-1)+1; 6 return r; 7 } 8 9 public static void main(String[] args) { 10 System.out.println(f(2)); 11 } 12} 13
出力結果は、
2
1
0
3
となりました。mainメソッドより最初は2が出力されます。次に、if文を実行しますが、今回はn=0ではないのでr=f(1)+1となります。と、ここまでは理解できました。次に実行するのはreturn文ですよね?実はまだreturn文のことがあまりよく理解できていないのですが、今回の場合はrの値を同じメソッド内に返すのでしょうか?すみません。勉強不足で申し訳ないです。できればプログラムの実行を順序を追って説明してくれたら助かります。宜しくお願いします。
コードは ``` で囲むと綺麗に見えます。
回答6件
あなたの回答
tips
プレビュー