ホームページ > バックエンド開発 > C++ > プログラミングにおいて True と 1 は等しいのに、等価ではないのはなぜですか?

プログラミングにおいて True と 1 は等しいのに、等価ではないのはなぜですか?

Susan Sarandon
リリース: 2024-11-28 16:52:14
オリジナル
267 人が閲覧しました

Why are True and 1 Equal in Programming, but Not Equivalent?

プログラミングにおける True と 1、False と 0 の等価性を理解する

多くのプログラミング言語では、便宜上、True と False の値を同等の数値として表します。そして効率性。多くの場合、true には値 1 が割り当てられ、false には値 0 が割り当てられます。

ただし、これらの数値の同等性は、ブール値の意味での厳密な同等性を意味するものではないことに注意することが重要です。

平等と同等

プログラミングにおける平等とは演算子 (==) は 2 つの値が等しいかどうかをチェックします。 true と false の場合、true == 1 と false == 0 の比較は true と評価されます。これは、等価条件を満たす目的では、これらの数値が等しいとみなされることを意味します。

ただし、true と 1、または false と 0 は、あらゆる目的で交換可能ではないことを理解することが重要です。たとえば、値 1 をブール変数に割り当てようとすると、それは true として解釈されますが、変数は真のブール値にはなりません。

ブール評価

多くのプログラミング言語では、ブール値コンテキストではゼロ以外の値が true と評価されます。これは、1 を含むゼロ以外の整数がブール式で使用される場合、true として評価されることを意味します。ただし、これは、厳密な意味で true に等しいという意味ではありません。

たとえば、次のステートメントを考えてみましょう:

if (0)         // false
if (1)         // true
if (2)         // true
ログイン後にコピー

この場合、すべてのステートメントは次のいずれかに評価されます。整数値のゼロ以外の性質に基づいて true または false。ただし、値 1 を持つステートメントのみが厳密に true とみなされ、その他のステートメントはゼロではない性質のため true と評価されます。

結論

while true == 1 と false == 0 は、ブール値のコンテキストでは true と評価されますが、これらはすべてのシナリオで交換可能ではない、または厳密に同等ではないことを覚えておくことが重要です。等価性と評価の区別は、正確で論理的なプログラミングにとって重要です。

以上がプログラミングにおいて True と 1 は等しいのに、等価ではないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート