java
1void calculate(int a, int b, int c){ 2//何らかの処理 3 4calculate(a+1,b+1,c+1);//再帰呼び出し 5calculate(a-1,b-1,c-1); 6 7} 8void main{//mainメソッド 9calculate(2,2,2); 10}
再帰呼び出しについて疑問があるので質問させてください。上のプログラムでは、calculateメソッドと、mainメソッドの2つのメソッドがあります。mainメソッドではまず、引数をa=2とb=2とc=2としてcalculateメソッドで呼び出しています。そうすると、calculateメソッドでは何らかの処理をし、今度は、a=3,b=3,c=3で再帰呼び出しをします。しかし、そうすると、2つめの再帰呼び出しはいつ行われるのでしょうか。1つめの再帰呼び出しが停止してからですか?再帰呼び出しは、処理の部分で何らかの条件で止めます。
また、最初に引数a=2とb=2とc=2としてcalculateメソッドを呼び出しましたが、そのaとbとcの値のままcalculate(a-1,b-1,c-1)を呼び出すにはどうしたら良いですか?つまり、最初に引数a=2とb=2とc=2でcalculateメソッドを呼ぶと、最初のcalculate(a+1,b+1,c+1)の部分の再帰呼び出しで、aとbとcの値がリセットされてしまうと思うのですが、それを阻止する方法というのはないのでしょうか。
なるべく配列などは使わない方向でいきたいです。長文で質問分かりづらくて、プログラムもあまり具体的でなくてすみません。よろしくお願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。