私はループについて質問する学生を支援していましたが、基本的に2つの数字xとyがあり、xとyのすべての値を合計して合計したいとします。たとえば、5〜10は45(5 + 6 + 7 + 8 + 9 + 10)を出力します。この人を助けながら、プログラムを再帰的に書くことにしました。私の再帰的な方法は45に戻りませんでした。代わりに5を返し続けます。誰かが私に何が起こっているのか説明できたら、私はそれを感謝します!ありがとう!再帰的メソッドが期待した結果を返さない
public class forLoops {
public static void main(String[] args) {
int sum = calc(5,10);
System.out.println(sum);
}
public static int calc(int num1, int num2) {
int sum = calc(num1, num2, 0);
return sum;
}
public static int calc(int num1, int num2, int total) {
if(num1 <= num2)
{
total += num1;
num1++;
System.out.println(num1);
calc(num1, num2,total);
}
return total;
}
}
たぶん代わりに捨てるの再帰カルク呼び出しの出力に何かを戻り値? – azurefrog
@azurefrogああ私の良さ、あなたはとても正しいです。 total = calc(...)を設定すると固定されました。 – OVOFan
'if'の中で' return calc(num1、num2、total); 'を実行することもできます。 – dasblinkenlight