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>= b
与 a = a <op> b
大致相同,其中 <op>
是一个运算符。 (还有 LHS 类型转换为 a
的类型。)
And which one should be used in our case?
不清楚哪个是正确的。我们需要了解数据结构和更多算法。
我和我的朋友一直在为学校解决一个问题。我们正在使用 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
的类型。)
And which one should be used in our case?
不清楚哪个是正确的。我们需要了解数据结构和更多算法。