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 语言规范

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

于 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 = +xx = x

使用+=

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

是的,因为这两个东西是不等价的。

potential =+ rep_pot;

在这里,我们有可能为表达式'unary plus rep_pot'分配了一个值

你打算写的东西看起来不同:

potential += rep_pot;

这相当于

potential = potential + rep_pot;
于 2012-10-22T08:14:33.080 回答