写是不是很糟糕:
if (b == false) //...
while (b != true) //...
写成这样 总是 更好吗:
if (!b) //...
while (!b) //...
大概在性能上没有差异(或者存在差异?),但是您如何权衡两者之间的明确性、简洁性、清晰度、可读性等?
更新
为了限制主观性,我也很欣赏来自权威编码风格指南的任何引用,这些指南总是更可取或何时使用。
_注意_:变量名 b
仅用作示例,ala foo
和 bar
。
原文由 polygenelubricants 发布,翻译遵循 CC BY-SA 4.0 许可协议
它不一定是坏的,它只是多余的。此外,实际的变量名很重要。例如,我更喜欢
if (userIsAllowedToLogin)
而不是if (b)
甚至更糟if (flag)
。至于性能问题,编译器会以任何方式对其进行优化。
至于权威来源,我无法在最初由 Sun 编写的 Java 代码约定 中找到明确的内容,但至少 Checkstyle 有一个
SimplifyBooleanExpression
模块会对此发出警告。