読み込み中...

初心者必見!Rubyの「または」を理解するための7つのステップ

Rubyのまたはを理解するための7つのステップ Ruby
この記事は約10分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングの世界では、「または」は非常に一般的な表現です。

この記事では、プログラミング言語Rubyにおける「または」の使い方に焦点を当てて解説していきます。

ここでは初心者の方でも理解できるように、基本的な使い方から応用例、さらには論理的な落とし穴まで詳しく説明していきます。

プログラミングを始めたばかりの方、Rubyの条件分岐について詳しく知りたい方にとって、この記事は大いに役立つでしょう。

●Rubyとは

Rubyは、まつもとゆきひろ氏によって開発されたプログラミング言語で、オブジェクト指向スクリプト言語の一つです。

Rubyは人間中心の設計理念に基づいており、プログラマがコードを読み書きする際の快適さを重視した言語です。

●Rubyの「または」の基本

○またはの概念

「または」は、論理的な条件分岐において頻繁に使用される演算子で、プログラミングではOR演算子とも呼ばれます。

この演算子の主な使い方は、2つ以上の条件のいずれか一つが真であれば全体として真となる、という論理式を表現することです。

○またはの表記方法

Rubyでは、「または」を表すOR演算子は「||」と表記されます。

例えば、「条件Aまたは条件B」をRubyで書くと、「condition_A || condition_B」となります。

●またはの使い方

○サンプルコード1:基本的な条件分岐

このコードでは、「または」を使って基本的な条件分岐をする例を紹介します。

この例では、ある数値が偶数であるか、または10以上であるかをチェックしています。

num = 9
if num.even? || num >= 10
  puts "数値は偶数、または10以上です。"
else
  puts "数値は奇数であり、かつ10未満です。"
end

このコードではまず、変数numに数値9を代入しています。

次に、条件分岐を行うif文を使用します。条件として「num.even? || num >= 10」を指定しています。

「num.even?」はnumが偶数であるかを判定するメソッド、「num >= 10」はnumが10以上であるかを判定する式です。

これら2つの条件のうちどちらか一つでも満たす場合は、「数値は偶数、または10以上です。」と出力されます。

どちらの条件も満たさない場合は、「数値は奇数であり、かつ10未満です。」と出力されます。

実行結果は、「数値は奇数であり、かつ10未満です。」となります。

なぜなら、数値9は偶数でもなく、また10以上でもないからです。

○サンプルコード2:複数の条件分岐

このコードでは、「または」を使って複数の条件分岐をする例を紹介します。

この例では、ある文字列が「Ruby」または「Python」または「JavaScript」であるかをチェックしています。

programming_language = "Ruby"
if programming_language == "Ruby" || programming_language == "Python" || programming_language == "JavaScript"
  puts "プログラミング言語はRuby、Python、またはJavaScriptです。"
else
  puts "プログラミング言語はRuby、Python、JavaScriptではありません。"
end

このコードではまず、変数programming_languageに文字列”Ruby”を代入しています。

次に、条件分岐を行うif文を使用します。条件として「programming_language == “Ruby” || programming_language == “Python” || programming_language == “JavaScript”」を指定しています。

これは、「programming_languageが”Ruby”である、または”Python”である、または”JavaScript”である」という3つの条件のいずれかを満たすかどうかをチェックしています。

これらの条件のうちどちらか一つでも満たす場合は、「プログラミング言語はRuby、Python、またはJavaScriptです。」と出力されます。

どの条件も満たさない場合は、「プログラミング言語はRuby、Python、JavaScriptではありません。」と出力されます。

実行結果は、「プログラミング言語はRuby、Python、またはJavaScriptです。」となります。

なぜなら、プログラミング言語が”Ruby”であるという条件を満たしているからです。

●またはの応用例

ここからは、「または」の応用例について見ていきましょう。

より実践的なコードで、「または」をどのように活用できるかを理解していきましょう。

○サンプルコード3:ユーザー入力に対する条件分岐

このコードでは、ユーザーからの入力を元に条件分岐をする例を紹介します。

この例では、ユーザーが入力した文字列が「yes」または「y」であるかをチェックしています。

print "進行しますか? (yes/y): "
user_input = gets.chomp.downcase
if user_input == "yes" || user_input == "y"
  puts "進行します。"
else
  puts "中止します。"
end

このコードではまず、「進行しますか? (yes/y): 」というプロンプトを出力し、ユーザーからの入力を待ちます。

次に、その入力値を全て小文字に変換したものをuser_inputという変数に代入します。

そして、「user_input == “yes” || user_input == “y”」という条件分岐を行います。

この条件式は、ユーザーが「yes」または「y」と入力した場合に真となります。

真の場合、「進行します。」と出力されます。偽の場合は、「中止します。」と出力されます。

○サンプルコード4:配列内の要素の検索

このコードでは、配列内の特定の要素を探す例を紹介します。

この例では、ある配列内に「Ruby」または「Python」が存在するかをチェックしています。

languages = ["Ruby", "JavaScript", "C++", "Java"]
if languages.include?("Ruby") || languages.include?("Python")
  puts "配列はRubyまたはPythonを含んでいます。"
else
  puts "配列はRubyもPythonも含んでいません。"
end

このコードでは、まずlanguagesという配列を定義し、そこに4つのプログラミング言語名を代入します。

次に、「languages.include?(“Ruby”) || languages.include?(“Python”)」という条件式を使用します。

この条件式は、「languagesが”Ruby”を含む、または”Python”を含む」場合に真となります。真の場合、「配列はRubyまたはPythonを含んでいます。」と出力されます。

偽の場合は、「配列はRubyもPythonも含んでいません。」と出力されます。

このコードを実行すると、「配列はRubyまたはPythonを含んでいます。」と出力されます。

なぜなら、languagesという配列は”Ruby”を含んでいるからです。

○サンプルコード5:データベースからの情報取得

このコードは、データベースからの情報取得を想定したものです。

ここでは、データベースから取得したユーザー名が「admin」または「superuser」であるかをチェックします。

username = "admin" # ここではデモのため、直接ユーザー名を代入します。
if username == "admin" || username == "superuser"
  puts "管理者権限を持つユーザーです。"
else
  puts "一般ユーザーです。"
end

このコードでは、まずusernameという変数に”admin”を代入します。

そして、「username == “admin” || username == “superuser”」という条件分岐を行います。

この条件式は、usernameが”admin”または”superuser”である場合に真となります。

真の場合、「管理者権限を持つユーザーです。」と出力されます。

偽の場合は、「一般ユーザーです。」と出力されます。

実行結果は、「管理者権限を持つユーザーです。」となります。

なぜなら、usernameが”admin”であるという条件を満たしているからです。

●注意点と対処法

「または」を用いる際には、いくつか注意するべき点があります。

それらを理解し、適切に対処することで、プログラムのバグを防ぎ、より良いコードを書くことが可能となります。

○サンプルコード6:論理的な落とし穴

ここでは、「または」の挙動について、深く理解するためのサンプルコードを提示します。

この例では、複数の条件式が含まれる場合の「または」の動作を説明します。

is_adult = false
is_student = true

if is_adult || is_student
  puts "割引料金が適用されます。"
else
  puts "通常料金が適用されます。"
end

このコードでは、まず二つのブール型の変数is_adultとis_studentを定義しています。

そして、「is_adult || is_student」という条件分岐を行います。

この条件式は、「is_adultが真である、またはis_studentが真である」場合に真となります。

真の場合、「割引料金が適用されます。」と出力されます。

偽の場合は、「通常料金が適用されます。」と出力されます。

このコードの実行結果は、「割引料金が適用されます。」となります。

これは、is_studentが真であるという条件を満たしているためです。

つまり、「または」を用いることで、複数の条件のうち一つでも真であれば、全体の条件式が真となるということを理解することが重要です。

●カスタマイズ方法

「または」を活用することで、より柔軟なプログラムを作成することが可能となります。

ここでは、その一例として、独自のメソッドを作成する方法を説明します。

○サンプルコード7:カスタムメソッドの作成

このコードでは、独自のメソッドを作成する例を紹介します。

この例では、引数として受け取った二つの値が、どちらか一方でも真であれば真を返すというメソッドを作成します。

def custom_or(value1, value2)
  if value1 || value2
    true
  else
    false
  end
end

puts custom_or(false, true)  # 真を出力
puts custom_or(false, false) # 偽を出力

このコードでは、まずcustom_orというメソッドを定義します。

このメソッドは、二つの引数value1とvalue2

を受け取り、「value1 || value2」という条件式を評価します。

この条件式が真であればtrueを、偽であればfalseを返します。

このコードの実行結果は、「真を出力」「偽を出力」となります。

これは、最初のcustom_or(false, true)では、value2が真であるため、条件式が真となり、trueが出力されます。

一方、二番目のcustom_or(false, false)では、value1もvalue2も偽であるため、条件式が偽となり、falseが出力されます。

まとめ

Rubyの「または」を使った条件分岐は、プログラミングにおいて重要なスキルです。

本記事では「または」の基本的な使用法から、実際の応用例、注意点、カスタマイズ方法に至るまでを詳細に説明しました。

具体的なサンプルコードを通じて、「または」の動作を理解し、自身のコードの中で適切に使いこなすことができるようになったことでしょう。

「または」は、複数の条件を扱う際に大変便利です。

しかし、その挙動を理解していないと思わぬバグを引き起こす可能性もあります。

特に、「または」は左から右へと評価され、一つでも真の条件が見つかった時点で全体の評価が終了するという特性を理解することが重要です。

これにより、不必要な計算を省略でき、プログラムのパフォーマンスを向上させることが可能となります。

また、独自のメソッドを作成することで、「または」を更に柔軟に利用することができます。

これにより、一貫性のあるコードを書くことができ、メンテナンス性も向上します。

Rubyの「または」を理解し、活用することで、より高度なプログラミングが可能となります。

本記事が、その一助となれば幸いです。プログラミングは絶えず学び続けるべき分野です。

「または」の使い方をマスターしたら、次に何を学ぶか、自身で決めて挑戦してみてください。

引き続き、プログラミングの学習に最善を尽くしていきましょう。