if文を使うと、プログラムの処理を条件分岐させることができます。
以下から Rubyでの「if・elsif・else・end」の使い方を解説していきます。
目次
if文の基本
「if」を使うと、「○○の条件に一致したら、××の処理を行う」といった制御ができます。以下のようにして、条件と処理を指定するのが基本です。
if 条件
処理
end
複数の条件を指定する場合は以下のように elsif も使います。
if 条件1
条件1に当てはまった場合の処理
elsif 条件2
条件2に当てはまった場合の処理
end
条件1と条件2の両方に一致した場合は、最初に記述した条件が優先され、処理1が実行されます。
また、どの条件にも一致しなかった場合の処理を追加するには、else も使います。
if 条件1
条件1に当てはまった場合の処理
elsif 条件2
条件2に当てはまった場合の処理
else
どの条件にも一致しなかった場合の処理
end
if を使ったプログラム例
実際にプログラムを書いて動作を確認してみましょう。
単体の条件を指定する(if … end)
以下は「a」の変数の値が 1
であれば、「a は 1 である」と表示する例。
a = 1
if a == 1
p "a は 1 である"
end
"a は 1 である"
1行目で、「a」の変数に 2
をセットして確認してみると、if で指定した条件に一致しないため、何も表示されません。
a = 2
if a == 1
p "a は 1 である"
end
if a == 1
p "a は 1 である"
end
は、
p "a は 1 である" if a == 1
のように1行で表すこともできます。
a == 1
は「a」の変数に入っている値が 1
であれば true
、1
でなければ false
を返す記述です。
条件式についてはこのページの下のほうで詳しく書きました。
複数の条件を指定する(if … elsif … end)
複数の条件を指定する場合は elsif も使います。
以下は「a」の変数の値が 1
であれば「a は 1 である」、変数の値が 2
であれば「a は 2 である」と表示する例。
a = 1
if a == 1
p "a は 1 である"
elsif a == 2
p "a は 2 である"
end
"a は 1 である"
1行目で「a」の変数に入れる値を 2
にしておくと、以下のように実行結果が変わることが確認できます。
a = 2
if a == 1
p "a は 1 である"
elsif a == 2
p "a は 2 である"
end
"a は 2 である"
どの条件にも一致しなかった場合の処理を指定する(if … elsif … else … end)
どの条件にも一致しなかった場合の処理を指定するには else も使います。
以下では a == 1
にも a == 2
にも当てはまらないため、else のブロックの中で指定した処理が実行されていることが確認できます。
a = 3
if a == 1
p "a は 1 である"
elsif a == 2
p "a は 2 である"
else
p "条件に一致しない"
end
"条件に一致しない"
条件の指定方法
上の例では条件式として a == 1
などを用いましたが、他にもさまざまなバリエーションがあります。
条件式で使える比較演算子
条件式で使える比較演算子には以下のようなものがあります。
a == b |
a と b が等しい |
a != b |
a と b が等しくない |
a > b |
a より b が小さい |
a < b |
a より b が大きい |
a >= b |
a より b が小さい、または等しい |
a <= b |
a より b が大きい、または等しい |
a && b |
a も b も正である |
a || b |
a または b が正である |
!a |
a の否定 |
上の記述を組み合わせて、
a == b && c == d
(a > b || c < d) && e == d
といった記述もできます。
以下は条件式の具体例。
score >= 80 && score <= 100
!(score >= 80 && score <= 100)
条件式で使えるメソッド
結果が true
や false
で返ってくるものであれば、条件式でメソッドを使うことができます。
以下の例では a.empty?
で配列が空かどうかをチェックしています。
a = []
if a.empty?
p "配列は空です"
end
"配列は空です"
配列や empty?
の使い方について詳しくはこちら。
まとめ
以上、Ruby の「if・elsif・else・end」の使い方でした!
ここまでの内容をまとめておきます。
- 「if」を使うと、「○○の条件に一致したら、××の処理を行う」といった制御ができる。
- 「elsif」を組み合わせると、複数の条件を指定できる。
- 「else」を組み合わせると、どの条件にも一致しなかった場合の処理を追加できる。
- 条件には、比較演算子や、結果が
true
やfalse
で返ってくるメソッドを使うことができる。