在if else语句中评估布尔值的正确方法

时间:2017-03-13 02:09:28

标签: objective-c if-statement boolean

如果在某个地方得到了解答,请提前抱歉,但我确实环顾了一会儿并没有找到任何结果。

我在Objective-C中编码,但这主要是一个通用的编码问题。我基本上想知道是否有一种适当的,专业的方式来编写涉及布尔值的其他语句。具体来说,我想知道是否

  1. 对于涉及布尔值的if else语句的排序,有一个“最快”的“最佳”编码实践
  2. 是否有更美观的写作方式?
  3. 因此,举例来说,这里有三种不同的方式我想知道

    方法1

    if (myBool)
    {
        //Do something
    }
    else
    {
        //Do something else
    }
    

    方法2

    if (myBool)
    {
        //Do something
    }
    else if (!myBool)
    {
        //Do something else
    }
    

    方法3

    if (myBool)
    {
        //Do something
    }
    if (!myBool)
    {
        //Do something else
    }
    

    我知道这听起来有点愚蠢,并且在细微的细节上真的很难受。在代码可读性方面,我主要想知道这些不同的方法。在可读性方面,似乎方法2/3 对我来说是最好的。这允许您搜索该变量的特定情况,这在大文件中可能更容易。也许这只是一个小问题,但实际上并不重要。

    方法1似乎是我最常见的,也是我默认选择的。但对于那些经验丰富的编码员来说,有没有一种特定的方法可以做到这一点,或只是偏好?

4 个答案:

答案 0 :(得分:3)

<强> 1。有一个&#34;最快&#34; &#34;最好的&#34;用于排序涉及布尔值的if else语句的编码实践

  

&#34;放置您通常希望首先处理的案例。这符合将决策产生的代码尽可能接近决策的一般原则...... [在if之后放置正常情况]将重点放在阅读主要流程而不是趟过特殊情况案例,因此代码更易于整体阅读。&#34;

Code Complete,第2版,第356-357页。

<强> 2。是否有更美观的写作方式?

在正常的逻辑流程中,最好使用方法1

答案 1 :(得分:0)

要考虑的一件事是您期望的价值观。

在这种情况下,布尔值只有两个可能的值,因此如果我们使用方法1作为最“方便”的方式是有意义的。

当您要检查的值超过2个时,方法2可以有效地工作。

另一方面,当 myBool 的值在第一个[if]条件之后发生变化时,方法3很方便。

答案 2 :(得分:0)

我认为Method1也是常见且有效的。
1.如果myBool为true,则在method3中,如果条件不需要检查2nd 2.在方法2中,如果因为bool只有2个值,它是yes / true或no / false,则不需要2nd。如果只有2个以上的情况,请使用其他 3.当您使用if else或if else时,如果您应根据概率提供条件。必须先放置最满意的条件。

答案 3 :(得分:0)

为非常简单的作业做if / else的简洁方法

DispatchQueue.main.async {
        self.tableView.reloadData()
        self.selectNode(node: newNode)
    }

简短的手是:

int num;
if (isNegative) {
    num = -1;
} else {
    num = 1;
}

我不建议复杂的条件/作业,因为它可能会变得混乱。但我发现它可以用于压缩非常简单的if / else赋值。