2

単純な for ループから double を返そうとしています。何らかの理由で、メソッドに return ステートメントがないというエラー メッセージが表示され続けます。

これが私のコードです:

public static double quantitytable(){

    for(double x=1; x<=1000; x=x+100){    
           return x;
    }

}
4

3 に答える 3

5

あなたのループは意味がありません。戻るとすぐに、ループは終了します。基本的に、あなたのプログラムはこれと同等です:

public static double quantitytable(){
    return 1;
}

メソッドから複数の項目を返したい場合は、配列または Java コレクションを返します。

public static List<Double> quantitytable() {
    List<Double> res = new ArrayList<Double>();
    for(double x=1 ; x<=1000 ; x += 100) {
       res.add(x);
    }
    return res;
}
于 2012-10-26T01:40:34.877 に答える
2

Java では、すべてのコード パスが値を返す必要があります。コンパイラは、すべてのケースでループが戻ることを証明しようとはしませんfor(そうであるとは言えますが)。そのため、制御が for ループの最後を超える可能性があると考えます (そのためreturn、ループの後にステートメントを要求しforます) 。 .

于 2012-10-26T01:42:14.970 に答える
1

コードはすぐに返されます。最初の反復中

double x=1 
      for(; x<=1000; x+=100){    
               return x;}

    }
于 2012-10-26T01:39:26.310 に答える