在任何情况下,这个IF是否有意义

Tir*_*LTI 1 java if-statement

我正在查看合作伙伴的代码,我发现了这个IF语句.

if (((x == 0) && (y == 0)) || y == 0) { 
            do something
        }
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我,但这不是IF冗余的第一部分吗?

ars*_*jii 7

使用真值表:

??????????????????????????????????????????????????????
? x == 0 ? y == 0 ? ((x == 0) && (y == 0)) || y == 0 ?
??????????????????????????????????????????????????????
?      0 ?      0 ?                                0 ?
?      0 ?      1 ?                                1 ?
?      1 ?      0 ?                                0 ?
?      1 ?      1 ?                                1 ?
??????????????????????????????????????????????????????

显然,这x == 0部分是无关紧要的,你拥有的就是相同的

if (y == 0) {
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • @Nathan因为这个没有,Code Review会得到太多错误的迁移. (3认同)