!=
以上を使用する特別な理由はあります==
か?
私はそれがより一般的であるように思われることに気づき!=
ましたが、これには理由があるのだろうかと思いました。
このようなコードがある場合:
if (a == b)
{
// block 1
}
else
{
// block 2
}
次のように書き直すことができます。
if (a != b)
{
// block 2
}
else
{
// block 1
}
これらの2つの例は同じことをします。どちらも他より効率的ではありません。一方が他方よりも多く使用される場合、それは個人的な好みかもしれません。
表現しようとしている論理条件を使用する==
か、それに応じて使用する必要があります。と条件の両方、つまりと部分の!=
両方を気にする場合、切り替えの正味の効果(単純な比較の場合)は、どのコードをどの部分に表示する必要があるかだけです。true
false
if
else
コーディングスタイルがあります。ブール式の正の形成に関する(本) Code Completeのセクションを参照してください。これは、正の値を表すブール式は、負の値を表すブール式よりも理解しやすいことを示しています。
条件が評価されるときにtrue
のみ気にする場合、たとえば、等しい場合(for ==
)または等しくない場合(for)のみ気にする場合は、正しいセクションを選択すればセクション!=
は必要ありません。else
ほとんどの場合、!=または==を使用する設定は、コンテンツによって異なります。
resultOfOperationOrCall = operationOrCall(...);
if (resultOfOperationOrCall != somePredefinedErrorTypeValue) {
// Normal processing
} else {
// Exception/error processing
}
ここで!=を使用する方が、==を使用するよりも論理的に明確です。
私はそれがより明確である(そして間違いとして!=
書く可能性が少ない)ので好む。=
==と!=の両方のアセンブリコードが存在するため、x86アーキテクチャの効率的または非効率的なコードの問題はありません。したがって、それらのいずれかを使用できます。
一部のマシンでアセンブリコードが利用できない場合、コンパイラによって追加の操作(つまり、追加のアセンブリコードの追加)を実行することで、効率的または非効率的になります。
その全体的かつ唯一は、ユーザーの認識とニーズに依存します。なぜ!= more ==を使用するのか、理由はわかりません。