-2

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

boolean a = false;

哪种条件最好

if(a == false)

或者

if(!a)

请给出一些描述在系统级别这两种情况会发生什么。

4

4 回答 4

3

这些很可能最终与编译器决定的指令完全相同(无论是什么语言)。

于 2013-04-30T10:14:58.453 回答
3
if (!a)

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

内部含义是相同的(即使在 C 中,两个条件在 is 时都为真a0,因此在优化方面不会有任何差异。

于 2013-04-30T10:17:52.307 回答
1

它们完全相同。编译器将代码编译成最好的方式。

于 2013-04-30T10:15:01.403 回答
0

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

如果您以前以不寻常的方式将值分配给布尔变量,例如使用不同的类型,使用数学表达式为其分配值,那么我认为第二种选择:if(!a)更安全,更有可能按您的预期运行,但如果您始终只使用布尔变量或仅评估为布尔值的表达式为其分配值,那么这并不重要。但是,我个人认为第一选择:if(a == false)更具可读性。

关于性能,我同意所有其他答案。

于 2013-04-30T10:45:32.483 回答