Java 中 += 和 = 1+ 的区别

Difference between += and = 1+ in Java

我和我的朋友一直在为学校解决一个问题。我们正在使用 DFS 遍历一个图,并计算每个给定组件中的节点数。我们得到了截然不同的结果,并确定了差异所在。

进入下一个递归时,我的朋友使用语法

componentSize += DFS_visit(nextNodeToVisit);

而我使用

componentSize = 1 + DFS_visit(nextNodeToVisit);

我本来以为这两个是一样的,那有什么区别呢?在我们的案例中应该使用哪一个?

 componentSize += DFS_visit(nextNodeToVisit); 

表示

 componentSize = componentSize + DFS_visit(nextNodeToVisit);

比较
 componentSize = DFS_visit(nextNodeToVisit) + 1;

看出区别了吗?

一般来说,a <op>= ba = a <op> b 大致相同,其中 <op> 是一个运算符。 (还有 LHS 类型转换为 a 的类型。)


And which one should be used in our case?

不清楚哪个是正确的。我们需要了解数据结构和更多算法。