3

是否有任何特别的理由!=使用超过==

我注意到这!=似乎更常见,但想知道这是否有原因。

4

6 回答 6

3

如果你有这样的代码:

if (a == b)
{
    // block 1
}
else
{
    // block 2
}

它可以重写为:

if (a != b)
{
    // block 2
}
else
{
    // block 1
}

这两个例子做同样的事情。两者都不比另一个更有效。如果一个比另一个使用得更多,那可能是个人喜好。

于 2012-07-27T09:59:11.453 回答
2

您应该根据您要表达的逻辑条件使用==或。!=如果您同时关心trueandfalse条件,即ifandelse部分,那么切换的净效果(如果它是一个简单的比较)就是哪些代码需要出现在哪个部分。

有一种编码风格,请参阅(书籍)Code Complete的关于积极形成布尔表达式的部分,这表明表达积极事物的布尔表达式比表达消极事物的布尔表达式更容易理解。

如果您只关心计算结果为 的条件true,例如,您只关心是否有相等(for ==)或不相等(for ),那么如果您选择正确的部分,则!=不需要一个部分。else

于 2012-07-27T10:06:16.740 回答
1

大多数情况下,使用 != 或 == 的偏好取决于内容:

resultOfOperationOrCall = operationOrCall(...);
if (resultOfOperationOrCall != somePredefinedErrorTypeValue) {
// Normal processing
} else {
// Exception/error processing
}

这里使用 != 在逻辑上比使用 == 更清晰

于 2012-07-27T10:07:56.817 回答
1

我更喜欢它,因为它更明确(并且写错!=的机会更少)。=

于 2012-07-27T10:37:12.900 回答
0

它完全且完全取决于用户的感知和需求。我看不出有任何理由说明为什么要使用 != 多于 ==

于 2012-07-27T12:20:51.337 回答
0

由于 == 和 != 都存在汇编代码,因此对于 x86 架构,没有高效或低效代码的问题。所以这取决于您。您可以使用其中任何一个。

如果对于某些机器,如果汇编代码不可用,那么效率或效率低下的结果是编译器通过执行一些额外的操作(即添加额外的汇编代码)来实现的。

于 2012-07-27T11:20:54.507 回答