Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coding style 在多行条件语句中,AND和OR应该放在哪里?_Coding Style_Conditional - Fatal编程技术网

Coding style 在多行条件语句中,AND和OR应该放在哪里?

Coding style 在多行条件语句中,AND和OR应该放在哪里?,coding-style,conditional,Coding Style,Conditional,一个简单的编码标准问题: 条件语句中的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

一个简单的编码标准问题:

条件语句中的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,尤其是在代码格式化程序中

有标准吗


你更喜欢什么?

选项1,绝对是,原因与你提到的相同。易于注释、易于复制等


但是,如果它们是你提到的小条件,我会把它们放在一行。

在《代码完成》第二版第754-755页中,Steve McConnell列出了两种行延续模式的优点

第一个标识不完整的行,但运算符隐藏在参差不齐的行中

第二个重点是运营商。如果操作员不同,这可能很重要

比较:

  float total = ticketSalesBefore + 
                ticketSalesOnDayOfConcert + 
                tShirtSales -
                finesFromLocalPolice; 
致:


我个人更喜欢第二个,并建议在审查麦康奈尔的该章草案时将其包括在内

我更喜欢选项1,因为它突出显示了测试。对于Python编码,我大体上同意,但对于这一种,他们选择了选项2。

一些编码标准对此有自己的定义,但每个标准只适用于一种语言……嗯?我完全搞不懂为什么这个问题被关闭了!我只是在这里寻找意见,以帮助我决定自己的标准……给出的结束理由似乎很清楚。许多答案都告诉了你同样的事情。任何人都可以说这是主观意见,而这不是本网站的内容,因为它可能在programmers.stackexchange.com上运行得更好,但即使是他们也只接受。如果有人想讨论这一点-1为什么?有什么评论吗?
  float total = ticketSalesBefore
                + ticketSalesOnDayOfConcert
                + tShirtSales
                - finesFromLocalPolice;