和&&以下代码的语句和嵌套条件等价?

时间:2016-11-20 16:11:04

标签: java boolean conditional

如果x和y是int变量。对于x和y的所有值,以下两段Java代码是否在行为上等效?解释原因,或者为什么不解释。

版本1:

Seniority

第2版:

CASE

我认为这是等价的但我只是想确保我没有遗漏任何东西。我不明白他们怎么不能等同。感谢。

4 个答案:

答案 0 :(得分:1)

是的,它们完全相同。在这种情况下,选择你认为最清楚的那个。

答案 1 :(得分:1)

是的,他们是。

可能不那么明显的重要一点是,在两个版本中,第二个比较仅在第一个比较结果为'true'时进行评估。

答案 2 :(得分:1)

是的,它们是等价的,但第二个更短,你可以添加一个else子句,这是第一个你不能做的,因为你必须写两个独立的{{1}那里的条款。

是否应使用一个或两个else条款取决于您的逻辑要求,因此两种形式都适用。

通常推荐第二个,但如果你不需要单个else子句,并且表达式很大,那么第一个可能最终会更具可读性。

答案 3 :(得分:0)

是的,从语义的角度来看,它们也是等同的。