布尔条件测试 - 哪个好?

时间:2013-04-30 10:13:28

标签: optimization

这个问题可用于良好的代码和代码优化开发。

boolean a = false;

哪种情况最好

if(a == false)

if(!a)

请详细说明系统级别的两种情况会发生什么。

4 个答案:

答案 0 :(得分:3)

这些最终可能与编译器决定的指令完全相同(无论使用哪种语言)。

答案 1 :(得分:3)

if (!a)

另一种是可怕的“布尔洗涤”风格。

在内部意义是相同的(即使在C中,当a0时,两个条件都是正确的),因此在优化方面没有差异。

答案 2 :(得分:1)

它们完全一样。编译器将代码编译为最佳方式。

答案 3 :(得分:0)

我认为这取决于使用布尔变量完成的操作历史。

如果你之前已经以不寻常的方式为布尔变量赋值,比如使用不同类型赋值,使用数学表达式,那么我认为第二选择:如果(!a)更安全且是更有可能按照您的预期运行,但如果您总是仅使用布尔变量或仅仅评估布尔值的表达式为其赋值,则无关紧要。但是,我个人找到了第一个选择: if(a == false)更具可读性。

关于表现,我同意所有其他答案。