if/unlessによる条件分岐の書き方

学習の目標

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

  • 条件分岐の概念と必要性を理解する
  • if文を使った基本的な条件分岐の書き方を習得する
  • else文とelsif文を使った複数条件の分岐方法を学ぶ
  • unless文の使い方と意義を理解する
  • 修飾子としてのif/unlessの記法を習得する

はじめに

プログラミングでは、状況に応じて処理を変えることが頻繁に必要になります。例えば、「テストの点数が80点以上なら合格」「ユーザーがログインしていればマイページを表示する」といった具合です。

このような「もし〜なら、この処理を行う」という選択を行うための機能が条件分岐です。Rubyでは、主にif文を使って条件分岐を表現します。

if文の基本

条件分岐の基本となるのがif文です。ifは英語で「もし〜なら」という意味で、指定した条件が真(true)のときに特定の処理を実行します。

では、実際にif文を使ってみましょう。if.rbというファイルを作成し、以下のコードを書いてみてください。

score = 85
if score >= 80
puts "合格です"
end

このコードでは、以下のことを行っています。

  1. 変数scoreに値85を代入
  2. if文で「もしscoreが80以上なら」という条件を設定
  3. 条件が真の場合、「合格です」と表示
  4. if文の終わりを示すendキーワード

この例ではscoreの値が85で、これは80以上なので、条件は真(true)となり、「合格です」と表示されます。

if文を書く際の重要なポイントは以下の通りです。

  • ifの後には条件式を書く
  • 条件が真のときに実行する処理は、インデント(字下げ)して書く
  • 必ずendで終わらせる

if文とelse

条件が偽(false)の場合に別の処理を行いたい場合は、elseを使います。elseは英語で「そうでなければ」という意味です。

score = 65
if score >= 80
puts "合格です"
else
puts "不合格です"
end

この例では、score65で、これは80以上ではないので、条件は偽(false)となります。そのため、else以下の「不合格です」が表示されます。

if-else文の構造は以下のようになります。

  • ifで条件を指定
  • 条件が真のときの処理
  • else
  • 条件が偽のときの処理
  • end

elsifで複数の条件分岐

複数の条件に応じて異なる処理を行いたい場合は、elsifを使います。例えば、テストの点数に応じて異なるメッセージを表示したい場合などに便利です。

score = 75
if score >= 80
puts "優秀な成績です"
elsif score >= 70
puts "良い成績です"
elsif score >= 60
puts "合格です"
else
puts "不合格です"
end

この例では、score75なので、最初の条件(score >= 80)は偽ですが、次の条件(score >= 70)は真となります。そのため、「良い成績です」が表示されます。

重要なポイントとして、条件は上から順番に評価され、最初に真となった条件の処理だけが実行されます。そのため、条件の順序には注意が必要です。

unless文

unless文はif文の逆で、「〜でない場合」に処理を実行します。条件が偽(false)のときに処理を行いたい場合に便利です。

score = 45
unless score >= 60
puts "不合格です"
end

この例では、「scoreが60以上でない場合」に「不合格です」と表示します。score45なので、条件は偽となり(60以上ではない)、「不合格です」が表示されます。

unless文は以下のif文と同じ意味になります。

score = 45
if score < 60
puts "不合格です"
end

どちらを使うべきかは、条件の読みやすさによって判断するとよいでしょう。否定の条件(〜でない)を使う場合に、unlessを使うとコードが読みやすくなることがあります。

修飾子としてのif/unless

条件分岐が簡単で、実行する処理が1行だけの場合は、ifやunlessを修飾子として使うことができます。修飾子は、処理の後ろに条件を書く形式です。

score = 85
puts "合格です" if score >= 80
score = 45
puts "不合格です" unless score >= 60

この書き方は、特に簡単な条件チェックを行うときに便利で、コードをよりシンプルで読みやすくすることができます。

修飾子は、次のような通常の書き方と同じ意味になります。

# 修飾子
puts "合格です" if score >= 80
# 通常のif文
if score >= 80
puts "合格です"
end

条件式で使える比較演算子

条件分岐では、様々な比較演算子を使って条件を表現することができます。主な比較演算子には以下のようなものがあります。

演算子意味
==等しいa == b
!=等しくないa != b
>より大きいa > b
<より小さいa < b
>=以上a >= b
<=以下a <= b

これらの演算子を使って、様々な条件を表現できます。

age = 18
if age >= 20
puts "お酒を飲むことができます"
else
puts "お酒を飲むことはできません"
end

この例では、age >= 20という条件で、年齢が20歳以上かどうかをチェックしています。

条件の組み合わせ

複数の条件を組み合わせるには、論理演算子(&&||)を使います。

  • &&(AND): 両方の条件が真のときに真
  • ||(OR): 少なくとも一方の条件が真のときに真
age = 25
student = true
if age >= 20 && student
puts "成人の学生です"
elsif age >= 20
puts "成人です"
elsif student
puts "学生です"
else
puts "未成年で学生ではありません"
end

この例では、age >= 20 && studentという条件で、年齢が20歳以上で、かつ学生であるかどうかをチェックしています。

まとめ

本章では、Rubyの条件分岐について学びました。以下の内容を理解できたことと思います。

  • if文を使って条件が真のときに処理を実行する方法
  • else文を使って条件が偽のときの処理を指定する方法
  • elsif文を使って複数の条件分岐を作成する方法
  • unless文を使って条件が偽のときに処理を実行する方法
  • 修飾子としてのif/unlessを使って簡潔に条件分岐を書く方法
  • 比較演算子と論理演算子を使って複雑な条件を表現する方法

条件分岐は、プログラミングの基本的な制御構造の一つで、様々なケースに対応するために頻繁に使われます。適切な条件分岐を使うことで、プログラムはより柔軟に、状況に応じた処理を行うことができるようになります。

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

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

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

作成者:とまだ
Previous
ハッシュの要素を追加・削除しよう