这个问题可用于良好的代码和代码优化开发。
boolean a = false;
哪种情况最好
if(a == false)
或
if(!a)
请详细说明系统级别的两种情况会发生什么。
答案 0 :(得分:3)
这些最终可能与编译器决定的指令完全相同(无论使用哪种语言)。
答案 1 :(得分:3)
if (!a)
另一种是可怕的“布尔洗涤”风格。
在内部意义是相同的(即使在C中,当a
为0
时,两个条件都是正确的),因此在优化方面没有差异。
答案 2 :(得分:1)
它们完全一样。编译器将代码编译为最佳方式。
答案 3 :(得分:0)
我认为这取决于使用布尔变量完成的操作历史。
如果你之前已经以不寻常的方式为布尔变量赋值,比如使用不同类型赋值,使用数学表达式,那么我认为第二选择:如果(!a)更安全且是更有可能按照您的预期运行,但如果您总是仅使用布尔变量或仅仅评估布尔值的表达式为其赋值,则无关紧要。但是,我个人找到了第一个选择: if(a == false)更具可读性。
关于表现,我同意所有其他答案。