真偽値を理解しよう

学習の目標

本章では、以下の内容を学びます。

  • 真偽値(true/false)の基本概念を理解する
  • 比較演算子の使い方を習得する
  • 論理演算子(AND/OR)の使い方を学ぶ
  • 否定演算子の使い方を知る

はじめに

本章では、Rubyプログラミングにおいて重要な真偽値について学びます。

プログラムでは「はい/いいえ」の判断を頻繁に行います。例えば「ユーザーはログインしているか?」「入力された年齢は18歳以上か?」などの判断です。このような判断を行うための基礎となるのが真偽値です。

基本的な概念から、実際のコードを通して理解を深めていきましょう。

真偽値とは

プログラミングでは、「はい」か「いいえ」、「正しい」か「正しくない」のような、2つに1つの判断が必要な場面が多くあります。

Rubyではこのような「真」か「偽」かの値を真偽値と呼び、truefalseという2つの値で表現します。

irbを開いて、truefalseを表示してみましょう。

irb(main):001:0> puts true
true
=> nil
irb(main):002:0> puts false
false
=> nil

これらの値を使って、プログラムの中で様々な判断を行うことができます。例えば、「もし天気が晴れなら外出する」というような判断を真偽値を使って表現できます。

比較演算子を使ってみよう

比較演算子は、2つの値を比べて、その結果を真偽値で返します。日常生活でも「この数は5より大きいか?」「この2つは同じか?」などの比較をよく行いますが、それをプログラム上で行うための演算子です。

等値比較(==, !=

まず、等しいかどうかを調べる==を見てみましょう。

irb(main):003:0> puts 5 == 5 # 5と5は等しいか?
true
=> nil
irb(main):004:0> puts 5 == 3 # 5と3は等しいか?
false
=> nil

次に、等しくないことを調べる!=です。これは「〜ではない」という意味を持ちます。

irb(main):005:0> puts 5 != 3 # 5と3は等しくないか?
true
=> nil
irb(main):006:0> puts 5 != 5 # 5と5は等しくないか?
false
=> nil

大小比較(>, <, >=, <=

大小関係を調べる場合は、<(より小さい)や>(より大きい)を使います。

irb(main):007:0> puts 5 > 3 # 5は3より大きいか?
true
=> nil
irb(main):008:0> puts 5 < 3 # 5は3より小さいか?
false
=> nil

また、以上(>=)や以下(<=)も使えます。これらは「より大きいか等しい」「より小さいか等しい」という意味です。

irb(main):009:0> puts 5 >= 5 # 5は5以上か?
true
=> nil
irb(main):010:0> puts 5 <= 3 # 5は3以下か?
false
=> nil

文字列や他のデータ型の比較

数値だけでなく、文字列や他のデータ型も比較できます。

irb(main):011:0> puts "hello" == "hello" # 文字列の比較
true
=> nil
irb(main):012:0> puts "hello" == "world"
false
=> nil

文字列の場合、大文字と小文字は区別されます。

irb(main):013:0> puts "Ruby" == "ruby"
false
=> nil

AND演算子とOR演算子

複数の条件を組み合わせるには、AND演算子(&&)とOR演算子(||)を使います。これらを使うことで、「AかつB」「AまたはB」のような複合条件を表現できます。

AND演算子(&&)

AND演算子は、左右の条件がどちらも真の場合にのみ、全体が真になります。つまり「AかつB」という条件を表します。

irb(main):014:0> puts true && true # 真かつ真
true
=> nil
irb(main):015:0> puts true && false # 真かつ偽
false
=> nil
irb(main):016:0> puts false && true # 偽かつ真
false
=> nil
irb(main):017:0> puts false && false # 偽かつ偽
false
=> nil

この結果からわかるように、AND演算子は両方の条件がtrueの場合にのみtrueを返します。どちらか一方でもfalseであれば、結果はfalseになります。

OR演算子(||)

OR演算子は、左右の条件のどちらかが真であれば、全体が真になります。つまり「AまたはB」という条件を表します。

irb(main):018:0> puts true || true # 真または真
true
=> nil
irb(main):019:0> puts true || false # 真または偽
true
=> nil
irb(main):020:0> puts false || true # 偽または真
true
=> nil
irb(main):021:0> puts false || false # 偽または偽
false
=> nil

OR演算子はどちらか一方でもtrueであればtrueを返します。両方ともfalseの場合にのみ、結果はfalseになります。

複合条件の例

これらを組み合わせた実践的な例を見てみましょう。

例えば、年齢が20歳以上で、かつ学生ではない場合にtrueを返すプログラムは次のように書けます。

irb(main):022:0> age = 25
=> 25
irb(main):023:0> is_student = false
=> false
irb(main):024:0> puts age >= 20 && !is_student # 20歳以上かつ学生ではない
true
=> nil

このコードでは、年齢が20以上かを確認し、!is_studentで「学生ではない」という条件を確認しています。

否定演算子(!)

!は否定を表す演算子で、真偽値を反転させます。例を見てみましょう。

irb(main):025:0> puts !true # 真の否定
false
=> nil
irb(main):026:0> puts !false # 偽の否定
true
=> nil
irb(main):027:0> is_sunny = true
=> true
irb(main):028:0> puts !is_sunny # 晴れではない(晴れの否定)
false
=> nil

!演算子を使うことで、truefalseに、falsetrueに変換されます。

これは条件を「〜ではない」と表現したい時に便利です。例えば「雨ではない」は!is_rainy、「閉店していない(営業中)」は!is_closedのように表現できます。

実用的な例

真偽値と各種演算子を使った実用的な例をいくつか見てみましょう。

アクセス制限の条件

ユーザーがコンテンツにアクセスできるかどうかを判断する条件です。

is_logged_in = true
has_subscription = true
is_admin = false
# ログインしていて、かつ(サブスクリプションがあるか管理者である)
can_access = is_logged_in && (has_subscription || is_admin)
puts "アクセス可能: #{can_access}" # true

この例では、括弧を使って条件の評価順序を制御しています。まずhas_subscription || is_adminが評価され、その結果とis_logged_inがAND条件で結合されます。

年齢による判定

年齢に基づいて入場可能かどうかを判断する例です。

age = 16
is_accompanied_by_adult = true
# 18歳以上、または大人同伴の場合に入場可能
can_enter = age >= 18 || is_accompanied_by_adult
puts "入場可能: #{can_enter}" # true

この例では、OR演算子を使用して「18歳以上」または「大人同伴」のどちらかの条件が満たされれば入場可能としています。

まとめ

本章では、Rubyの真偽値について学びました。

真偽値(truefalse)は、プログラム内で条件判断を行うための基本的な要素です。

比較演算子(==, !=, >, <, >=, <=)を使うことで、値を比較して真偽値を得ることができます。

AND演算子(&&)とOR演算子(||)を使うことで、複数の条件を組み合わせることができます。

否定演算子(!)を使うことで、真偽値を反転させることができます。

これらの真偽値と演算子を使うことで、プログラムの中で様々な判断を行い、より柔軟で賢いプログラムを作成することができます。

このセクションは有料サブスクリプションへの登録、またはログインが必要です。完全なコンテンツにアクセスするには、料金ページ(/pricing)をご覧ください。購入済みの場合は、ログインしてください。

Starterプランでより詳しく学習

この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。

作成者:とまだ
Previous
シンボルを理解しよう