如果x和y是int变量。对于x和y的所有值,以下两段Java代码是否在行为上等效?解释原因,或者为什么不解释。
版本1:
Seniority
第2版:
CASE
我认为这是等价的但我只是想确保我没有遗漏任何东西。我不明白他们怎么不能等同。感谢。
答案 0 :(得分:1)
是的,它们完全相同。在这种情况下,选择你认为最清楚的那个。
答案 1 :(得分:1)
是的,他们是。
可能不那么明显的重要一点是,在两个版本中,第二个比较仅在第一个比较结果为'true'时进行评估。
答案 2 :(得分:1)
是的,它们是等价的,但第二个更短,你可以添加一个else
子句,这是第一个你不能做的,因为你必须写两个独立的{{1}那里的条款。
是否应使用一个或两个else
条款取决于您的逻辑要求,因此两种形式都适用。
我通常推荐第二个,但如果你不需要单个else
子句,并且表达式很大,那么第一个可能最终会更具可读性。
答案 3 :(得分:0)
是的,从语义的角度来看,它们也是等同的。