2017-01-16 12 views
2

プログラミング言語の "!= true"と "== false"の比較に技術的/論理的な違いがありますか?存在する場合は、どのような比較を選択する必要がありますか?"!= true"と "== false"の違いは?

+0

同じことです。通常、 'exp == false'は'!exp'としてよく表現されます。 – aioobe

答えて

2

論理的には、比較している値のタイプと使用している言語によって違いがあります。たとえば:

x == falsex != trueを意味しますが、xはまた、いくつかのナンセンス値にすることができので、x != trueは常にx == falseを意味するものではありません。

1 + 1 = 3は、いずれも== falseおよび!= trueである。

7 > cat== false!= trueのどちらもナンセンスではありません。

x = nullは、!= trueであるが、== falseではない。

+0

あなたの '7> cat'の例は奇妙だと思います。 'cat == false'や' cat!= true'という表現と同じように奇妙に思えます。どちらもコンパイラでもなく、私が知っている言語でも実行できません。有効なプログラムではないものの意味論について議論することは、私にとっては不思議なことです。 – aioobe

+1

@aioobe私は大部分は同意するだろうが、弱い型の言語でこれが起こっているのを見ることができた。だから、私が答えているのは、「あなたが比較している価値の種類に応じて」ということです。 –

+0

別の例として、ブール型でNULL値を許可する言語(または正式な構造)があります。この場合、nullはtrueでもfalseでもなく、true!falseでない可能性があります。 – MattClarke

関連する問題