关于如何格式化长if语句的愚蠢问题

时间:2011-05-26 02:49:27

标签: syntax

如果它们占用多行的语句很长,你是否将条件如AND或OR放在这样的新行上:

               if (something
                   && something else)

或者像这样:

               if (something &&
                   something else)

5 个答案:

答案 0 :(得分:3)

对于复杂条件,请考虑将其提取到函数或变量中:

if (complexCondition(foo)) { ..

作为奖励,函数或变量的名称可用于传达条件的含义。这使您的代码更易于阅读。

答案 1 :(得分:2)

我通常是第二种方式,因为我可以排列这些语句。但是,只要您保持一致,在编写代码时,无论哪种方式都可以。

答案 2 :(得分:1)

我更喜欢第一次演绎。我的理由是,通过剪切/粘贴/评论删除条件以用于任何测试目的更容易。注释掉一行比删除上面的行和注释掉一行容易得多。当我在SQL中使用where语句而不是任何其他给定语言的if语句时,这更多,但是类似。

答案 3 :(得分:1)

考虑到我的笨蛋,如果首先进行测试,我会避免长时间。我宁愿做类似的事情:

bool fTest1 = A == B ;
bool fTest2 = C ;
bool fTest3 = f(1,2,3) ;
bool fSuccess = ( fTest1 | ftest2 ) & fTest3 ;
if ( fSuccess )
...

其他类似的事情:

if (  A == B
&& (  C == D
   || E == F
   )
&&    Z >  Y
) {
    ...
  }
else
  {
    ...
  }

当然是YMMV。

前者更容易调试,测试,记录等。

答案 4 :(得分:0)

我通常使用IDE格式化程序进行格式化,然后重新排列一下以使其看起来很漂亮。