真偽値とは?trueとfalseの基本を初心者向けに解説

システム開発・テクノロジー
真偽値とは?ざっくりと3行で
  • 真偽値というのは、正しい(true)か、正しくない(false)か、たった二つの状態だけを表すデータのことなんだ。
  • 数字や文字と違って取りうる値は二択しかなく、コンピュータが物事を判断する土台になっている。
  • この二択の考え方が身につくと、プログラムがどうやって状況を見極めて動いているのかが見えてきます。

【深掘り】これだけ知ってればOK!

コンピュータの世界は、突き詰めればすべて0と1の二択です。真偽値はその二択の発想を、プログラムの判断に直接持ち込んだものだと言えます。

真偽値は、英語のbooleanからbool型とも呼ばれます。取りうる値はtrue(真)とfalse(偽)の二つだけ。数値型がたくさんの数を、文字列型がさまざまな言葉を表せるのに対し、真偽値は徹底的にシンプルです。では何の役に立つのか。答えは判断です。ログイン済みか、在庫はあるか、18歳以上か——こうした問いはすべて、はい・いいえ、つまりtrue・falseで答えられます。プログラムはこの二択の答えをもとに、次にどう動くかを決めているのです。

真偽値が最も活躍するのが条件分岐の場面です。if文は条件がtrueなら、この処理をするという形で動きます。たとえば残高が商品価格以上かという比較は、結果としてtrueかfalseを返し、その値によって購入処理に進むかどうかが決まります。比較演算子はこの真偽値を生み出す道具であり、論理演算子は複数の真偽値を組み合わせて、より複雑な判断を作り出します。

多くの言語では、空文字やゼロ、何もない値などがfalseのように扱われることがあります。この真偽値っぽく評価される挙動が、初心者を混乱させる落とし穴です。

この現象は真値・偽値(truthy / falsy)と呼ばれ、言語によってルールが異なります。たとえばJavaScriptでは、0や空文字などが条件判定でfalse扱いになります。便利な反面、意図しない分岐を招くこともあるため、正確な比較が必要な場面では厳密な等価判定を使うのが安全です。真偽値そのものはシンプルですが、それがどう評価されるかは言語ごとの個性が出る部分。使う言語のルールを一度確認しておくと、思わぬバグを避けられます。

よくある誤解

trueは1、falseは0と同じだという誤解

内部的に数値と対応づける言語は確かにありますが、真偽値と数値は概念として別物です。trueを1、falseを0のように扱える場面もありますが、それに頼ったコードは読みにくく、言語によっては通用しません。真偽値は真偽値として扱うのが、誤解の少ない書き方です。

条件式には必ず比較を書くべきという思い込み

xが真かどうかを、わざわざtrueと比較する書き方を見かけますが、xがすでに真偽値ならこの比較は冗長です。変数をそのまま条件に置けば十分機能します。真偽値を返す変数や関数は、そのまま条件式に置けると覚えておくと、コードがすっきりするのではないでしょうか。

会話での使われ方

ITKAGYO運営者デプロイ太郎のアイコン画像

このフラグ、真偽値で持っておけば判定が一発ですよ。文字列ではい・いいえを管理するのは事故のもとです。

先輩エンジニアがコードレビューで、データの持ち方を後輩に助言している場面です。

ITKAGYO運営者デプロイ太郎のアイコン画像

条件式が思った通りに動かないんです。空の文字列がfalse扱いになるって、どういうことですか…?

プログラミング初心者が、学習コミュニティのチャットで質問しているトーンです。

ITKAGYO運営者デプロイ太郎のアイコン画像

権限チェックのロジック、真偽値の組み合わせが複雑です。論理演算子の優先順位を整理して、テストケースを洗い出しましょう。

開発リーダーが設計レビューで、メンバーに方針を示している場面です。

【まとめ】3つのポイント

  • 二択だけのデータ:真偽値とは、true(真)かfalse(偽)の二つだけを取るデータで、コンピュータの判断の土台になります。
  • 条件分岐の燃料:比較演算子が生み出す真偽値をもとに、if文などの条件分岐は進む処理のルートを決定します。
  • 言語ごとの評価に注意:空文字やゼロがfalse扱いになるなど評価ルールは言語で異なるため、使う言語の挙動を確認しておくことが安全です。

よくある質問

Q
真偽値は何に使うのですか?
A

主に判断に使います。ログイン状態、在庫の有無、年齢条件など、はい・いいえで答えられる事柄を表現し、その値をもとに条件分岐で処理を切り替えます。プログラムが状況に応じて賢く動くための、最も基本的な部品です。

Q
trueとfalse以外の値は入れられますか?
A

真偽値という型に限れば、入るのはtrueかfalseの二つだけです。ただし多くの言語では、数値や文字列などを条件式に置くと、それらが真偽値のように評価される仕組みがあります。これは便利ですが混乱のもとにもなるため、注意が必要です。

Q
truthyとfalsyとは何ですか?
A

真偽値そのものではないのに、条件判定で真や偽のように扱われる値のことです。たとえばJavaScriptでは、0や空文字などがfalsyに分類されます。言語ごとにルールが違うため、使う言語の仕様を確認しておくと安心です。

Q
真偽値とフラグとの違いは何ですか?
A

厳密には別の概念です。真偽値はtrue/falseというデータの型を指します。一方フラグは、状態を表すために使う変数の役割・使い方を指す言葉で、その中身として真偽値がよく使われます。つまり真偽値を入れ物として使った状態管理の仕組みがフラグ、という関係です。

この用語と一緒に知っておきたい用語

用語 この記事との関連
データ 本記事のテーマと実務上セットで使われることが多い用語です。コンピュータが処理する数値や文字、画像といった事実や資料そのもの、それがデータだ
条件分岐 次のステップとして条件分岐を学ぶと知識が広がります。条件分岐というのは、ある条件が成り立つかどうかで、プログラムの動きを枝分かれさせる仕組みのことなんだ。
プログラム プログラムを押さえると本記事の理解がさらに深まります。コンピュータに何をどの順番でさせるかを書き並べた指示書、それがプログラムだ
アイコン アイコンを押さえると本記事の理解がさらに深まります。アプリやファイル、操作ボタンなどをひと目でわかる小さな絵で表したもの、それがアイコンだ
基本情報技術者試験 基本情報技術者試験を押さえると本記事の理解がさらに深まります。基本情報技術者試験の主要な特徴と用途を理解することで、関連する技術・制度・概念を正確に把握できるようになる

【出典】参考URL

MDN Web Docs Boolean: 真偽値型の仕様解説 https://developer.mozilla.org/ja/
MDN Web Docs Truthy/Falsy: 真値・偽値の評価ルール https://developer.mozilla.org/ja/
IPA 基本情報技術者試験シラバス: データ型の基礎 https://www.ipa.go.jp/

コメント

「IT用語、難しすぎて心が折れそう……」という方のための、ハードル低めな用語辞典です。

情報レベルは「基礎中の基礎」。会話を止めないためのエッセンスだけを抽出しています。分かりやすさを追求するあまり、時々例え話が暴走しているかもしれませんが、そこは「ほどよく」聞き流していただけると幸いです。
ほどよくIT用語辞典システム開発・テクノロジー
デプロイ太郎のSNSを見てみる!!
タイトルとURLをコピーしました