-1
public int sum (int num1, int num2){
    int sum = 0;
        if(num2>num1){
        for (int i = num1; i<=num2; i++){
            sum = sum + i;
            }
        }
        else{
        for (int i = num2; i <= num1; i++){
            sum = sum + i;
            }
        }
    System.out.println("The sum between " +num1+ " and " +num2+ " equals " + sum);
    return sum(num1, num2);
    }
}

無限ループ問題。修正はありますか?2 つの入力間のすべての数値の合計を見つけようとしています。これはクラス定義です何かアイデアはありますか?

4

4 に答える 4

2

sum()再帰を中断するタイミングを確認する条件なしで、再度呼び出しています。したがって、無限ループ

他の回答が指摘しているように、次のものに置き換える必要がありreturn sum(num1,num2);ますreturn sum;

于 2013-10-31T04:32:55.460 に答える
2

リターンの代わりにsum(num1, num2); あなたがすべきreturn sum;

于 2013-10-31T04:36:35.243 に答える
0
public int sum (int num1, int num2)
{
   int sum = 0;
   if(num2>num1)
   {
        for (int i = num1; i<=num2; i++)
        {
            sum = sum + i;
         }
   }
   else
   {
        for (int i = num2; i <= num1; i++)
        {
            sum = sum + i;
        }
    }
    System.out.println("The sum between " +num1+ " and " +num2+ " equals " + sum);
    return sum;  
  }

あなたは再帰呼び出しを行っていましたが、それが問題です..

于 2013-10-31T04:33:54.383 に答える
0

によって関数を再帰的に呼び出していますreturn sum(num1, num2);。だから return sum(num1, num2);に変更return sum;

于 2013-10-31T04:34:30.820 に答える