0

私は次のコードを読んでいます(ホルストマンのコア Java の第 5 章、継承):

double dx = (to - from) / (n-1);

for (double x = from; x <= to; x += dx)
{
  double y = (Double) f.invoke(null, x);
  System.out.printf(%10.4f |  %10.4f%n" + y, x, y);
}

for ループで double 変数を使用するのはなぜですか? そして、何invokeのために使われますか?ありがとう

編集:fはフィールドに関連するものです

4

5 に答える 5

4

特に、小数の値をループしたり、小数の値でインクリメントしたりしたい場合は、まったく問題ありません。

ただし、他の回答に何かを追加したかっただけです。つまり、この手法を使用する場合は、ループを終了する条件と比較しないでください。==精度の誤差が原因で、これは最善の意図にもかかわらず、簡単に無限ループに陥る可能性があります。それが、あなたの本のコードが を使用する理由<=です。

于 2013-06-28T21:33:39.977 に答える
1

たとえば、1.5 から最大 8 まで 0.11 の増分でループしたい場合は、for ループに double 変数が必要になります。

于 2013-06-28T21:30:21.457 に答える
1

しない理由はありません。通常、整数でループしますが、x = x*1.2 などのループ反復の最後に任意の命令を適用する double で同じことを実行できない理由はありません。またf、invoke が何をするのかを知る必要があります ;)

于 2013-06-28T21:31:13.467 に答える