2011-05-26 41 views

回答

2

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

1

我更喜欢第一个的演绎。我的推理是,通过剪切/粘贴/评论为任何测试目的删除条件更容易。注释一行比删除上一行和注释一行更容易。当我在SQL中的where子句比在其他任何给定语言的if语句中做的更多时,这更多,但是相似。

3

对于复杂的条件下,考虑它提取到一个函数或变量:

if (complexCondition(foo)) { .. 

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

+0

@hammar说了些什么。 – 2011-05-26 03:04:13

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 
    { 
    ... 
    } 

因人而异,当然。

前者更容易调试,测试,日志等

+0

我从来没有想过要这样做。我是一个非常新的程序员,所以这也可能是一个愚蠢的问题,但不会让这些额外的变量占用更多的空间,而不是一个很长的if语句? – Frodo 2011-05-26 02:58:13

+1

直到它的问题...谁在乎?内存很便宜。人们尝试理解或理解问题的时间不是。 – 2011-05-26 03:02:46

+0

@弗罗多它是微不足道的,因为他们是局部变量,他们会超出范围并被回收。 @尼古拉斯第一个我喜欢,但第二个只是可怕的 – Davy8 2011-05-26 03:07:14

0

我通常使用IDE格式化,然后重新整理了一下,使它看起来漂亮的格式。