Java中+=和= 1+的区别



我和我的朋友一直在研究学校的一个问题。我们正在使用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>= b的含义与a = a <op> b大致相同,其中<op>是一个算子。(LHS也有一个类型转换为a的类型)


在我们的例子中应该使用哪一个?

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

最新更新