一个简单的编码标准问题:
AND和OR应放在条件陈述中的哪个位置?
选项1:
if (x = 1
AND y = 2
AND z = 3)
if (x = 1
&& y = 2
&& z = 3)
if (x = 1
OR y = 2
OR z = 3)
if (x = 1
|| y = 2
|| z = 3)
选项2:
if (x = 1 AND
y = 2 AND
z = 3)
if (x = 1 &&
y = 2 &&
z = 3)
if (x = 1 OR
y = 2 OR
z = 3
if (x = 1 ||
y = 2 ||
z = 3)
我个人更喜欢选项1,因为它允许您快速注释掉某些条件 - 即在大多数脚本语言中使用“//”,但我更频繁地看到选项2,尤其是在代码格式化程序中。
有标准吗?
你更喜欢什么?
答案 0 :(得分:4)
在“Code Complete”第2版,第754-755页中,Steve McConnell列出了两种线条延续模式的优点。
第一个标识不完整的行,但操作符隐藏在不规则的行中。
第二个突出了运营商。如果操作员不同,这可能很重要。
比较
float total = ticketSalesBefore +
ticketSalesOnDayOfConcert +
tShirtSales -
finesFromLocalPolice;
为:
float total = ticketSalesBefore
+ ticketSalesOnDayOfConcert
+ tShirtSales
- finesFromLocalPolice;
我个人更喜欢第二种,并建议在审阅McConnell的那一章草稿时加入它。
答案 1 :(得分:1)
选项1,绝对是出于您提到的相同原因。易于注释,易于复制等。
但是,如果它们是你所提到的小条件,我会将它们全部放在一行上。
答案 2 :(得分:1)
我更喜欢选项1,因为它突出了测试。对于Python编码,我通常同意PEP 8,但它们与选项2一起使用。