0

potential =+ rep_pot コードフラグメントの最後の行をからに変更するpotential = potential + rep_potと、まったく異なる動作をすることに気づきました。なぜこれが起こっているのか誰かが知っていますか?

double potential = euclideanDistance(i, goal);
for (IntPoint h: hits){
    double dist = euclideanDistance(i, h);
    double a = range - dist;
    double rep_pot = (Math.exp(-1/a)) / dist;
    potential =+ rep_pot;
}
4

4 に答える 4

1

=+Javaには演算子はありません。すべての法的な演算子については、 Java言語仕様を参照してください。

=+2つの演算子があります:その後=+

于 2012-10-22T08:13:06.893 に答える
1

それは

potential = potential + rep_pot

と類似しています

potential += rep_pot

potential =+ rep_pot;

と同じです

potential = rep_pot;
于 2012-10-22T08:13:23.470 に答える
1

あなたはおそらく意味し+=ました。あなたの場合、それは次のように解釈されx = +xますx = x

使用+=

potential += rep_pot;
于 2012-10-22T08:14:13.470 に答える
1

はい、これら2つは同等ではないためです。

potential =+ rep_pot;

ここでは、式'unaryplusrep_pot'の値が割り当てられている可能性があります。

あなたが書くつもりのものは異なって見えます:

potential += rep_pot;

そしてこれは同等です

potential = potential + rep_pot;
于 2012-10-22T08:14:33.080 に答える