为什么这两个代码片段不同

时间:2012-10-22 08:10:52

标签: java

我刚才注意到,当我将代码片段中的最后一行从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 个答案:

答案 0 :(得分:1)

Java中没有=+运算符。有关所有合法运营商,请参阅Java Language Specification

=+两个运算符:=后跟+

答案 1 :(得分:1)

那是因为

potential = potential + rep_pot

类似于

potential += rep_pot

potential =+ rep_pot;

相同
potential = rep_pot;

答案 2 :(得分:1)

你可能意味着+=。在您的情况下,它被解释为x = +x x = x

使用+=

potential += rep_pot;

答案 3 :(得分:1)

是的,因为这两件事并不相同。

potential =+ rep_pot;

在这里,我们有可能分配表达式'unary plus rep_pot'

的值

你想写的东西看起来不一样:

potential += rep_pot;

这相当于

potential = potential + rep_pot;