2

double型を返すはずのメソッドを作成しました。これが私のコードです

private void myMethod()  
{ 
    if(myArrayList.size() >= 2) 
    {
        Double  t = myArrayList.get(myArrayList.size()-1);
        Double  d = myArrayList.get(myArrayList.size()-2); 
        Double result = ( t+ d  ) / 2 ;
        System.out.println("Average is: "+result);
    }
}

void を double に変更し、system.out..... 行の直後に return result を追加しましたが、これによりエラーが発生します!! double の戻り値の型を取得するために、このメソッドを正確に変更する方法を教えてください。

4

5 に答える 5

4

メソッドの型を double に変更した場合、すべての分岐で戻り値として double を指定する必要があります。したがって、あなたのエラーは、「if」が入力された場合にのみ戻り値として double が存在するためですが、そうでない場合はそうではありません!

private Double myMethod()  
{ 
    Double result = 0; // has to be initialised ...
    if(myArrayList.size() >= 2) 
    {
        Double  t = myArrayList.get(myArrayList.size()-1);
        Double  d = myArrayList.get(myArrayList.size()-2); 
        result = ( t+ d  ) / 2 ;
        System.out.println("Average is: "+result);
    }
    return result;
}

これはうまくいくはずです

于 2013-02-14T12:25:30.627 に答える
1

あなたの再実行はif条件の中にあったと思います。そのため、メソッドは、条件が真でない場合に何が起こるかを心配しています。それにも対処する必要があります。

于 2013-02-14T12:25:58.240 に答える
1
private double myMethod()  
{   
    double result=0;
    if(myArrayList.size() >= 2) 
    {
        Double  t = myArrayList.get(myArrayList.size()-1);
        Double  d = myArrayList.get(myArrayList.size()-2); 
        result = ( t+ d  ) / 2 ;
        System.out.println("Average is: "+result);
    }
    return result;
}
于 2013-02-14T12:26:23.563 に答える
0

メソッドの戻り値の型がありません。メソッドはメソッド型の値を返す必要があります。メソッドが void と宣言されている場合、メソッドは値を返さないことを意味します。

private double myMethod()  
{ 
double result =0;
if(myArrayList.size() >= 2) 
{
    double  t = myArrayList.get(myArrayList.size()-1);
    double  d = myArrayList.get(myArrayList.size()-2); 
    result = ( t+ d  ) / 2 ;
    System.out.println("Average is: "+result);
}
return result;
}
于 2013-02-14T12:25:48.987 に答える