两种if语句写法哪种更易读

第一种:
if (!statement1 || statement2 || ...)

第二种:
if (!(statement1 && !statement2 && ...))

解释:有若干个条件,要求每个条件要么为真要么为假(废话),而且这些条件之间是或的关系。

举例,下面两种写法哪种更容易理解:

if (!str.isEmpty() || a > 0 || a < b)
VS
if (!(str.isEmpty() && a <= 0 && a >= b))

注意:不要说分成多个if来写,我知道分开写更清晰。我只是想知道如果写在一条语句中的话哪种更容易理解。谢谢。

阅读 4.1k
4 个回答

都一样。

容易理解与否和开发人员的主观思维有关。
不过第一种要短些,看起来更简洁。也更符合常规思维

个人 认为按照 业务逻辑来讲第一种更容易理解,按照 代码逻辑第二种更容易理解。

建议用一个容易懂的变量去保存if中的表达式

var isOk= statement...;
if(isKnow)
    {
 }

当然这是题外话,我想的是 如果b是一个大于等于0的数的话 a>0||a<b 就不需要判断了,我觉得把一类的条件用一个括号括起来应该比较清晰,或者多用几个变量存一下,再综合这几个条件,这样就兼顾分开写的清晰也避免了多个if语句的麻烦。

var isCondition1=a > 0 || a < b;//条件1
var isCondition2=!str.isEmpty();//条件2
var isCondition3=isCondition1||isCondition2;//最终条件,当然这里的命名根据情况自己命名个容易理解的
if(isCondition3)
    {
  }

第一种,多一个括号就多一层元算,楼主或许可以试一下速度

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏