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
このコードでは、以下のことを行っています。
- 変数
score
に値85
を代入 - if文で「もし
score
が80以上なら」という条件を設定 - 条件が真の場合、「合格です」と表示
- if文の終わりを示す
end
キーワード
この例ではscore
の値が85
で、これは80
以上なので、条件は真(true)となり、「合格です」と表示されます。
if文を書く際の重要なポイントは以下の通りです。
if
の後には条件式を書く- 条件が真のときに実行する処理は、インデント(字下げ)して書く
- 必ず
end
で終わらせる
if文とelse
条件が偽(false)の場合に別の処理を行いたい場合は、elseを使います。elseは英語で「そうでなければ」という意味です。
score = 65
if score >= 80 puts "合格です"else puts "不合格です"end
この例では、score
が65
で、これは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
この例では、score
が75
なので、最初の条件(score >= 80
)は偽ですが、次の条件(score >= 70
)は真となります。そのため、「良い成績です」が表示されます。
重要なポイントとして、条件は上から順番に評価され、最初に真となった条件の処理だけが実行されます。そのため、条件の順序には注意が必要です。
unless文
unless文はif文の逆で、「〜でない場合」に処理を実行します。条件が偽(false)のときに処理を行いたい場合に便利です。
score = 45
unless score >= 60 puts "不合格です"end
この例では、「score
が60以上でない場合」に「不合格です」と表示します。score
が45
なので、条件は偽となり(60以上ではない)、「不合格です」が表示されます。
unless文は以下のif文と同じ意味になります。
score = 45
if score < 60 puts "不合格です"end
どちらを使うべきかは、条件の読みやすさによって判断するとよいでしょう。否定の条件(〜でない)を使う場合に、unlessを使うとコードが読みやすくなることがあります。
修飾子としてのif/unless
条件分岐が簡単で、実行する処理が1行だけの場合は、ifやunlessを修飾子として使うことができます。修飾子は、処理の後ろに条件を書く形式です。
score = 85puts "合格です" if score >= 80
score = 45puts "不合格です" 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 = 25student = 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を使って簡潔に条件分岐を書く方法
- 比較演算子と論理演算子を使って複雑な条件を表現する方法
条件分岐は、プログラミングの基本的な制御構造の一つで、様々なケースに対応するために頻繁に使われます。適切な条件分岐を使うことで、プログラムはより柔軟に、状況に応じた処理を行うことができるようになります。
Starterプランでより詳しく学習
この先のコンテンツを読むにはStarterプラン以上が必要です。より詳細な解説、実践的なサンプルコード、演習問題にアクセスして学習を深めましょう。