本文へスキップ
BecomeCoder

Rubyコース · 第2章 条件分岐と繰り返し · レッスン6

if/elsif/else ― 条件で処理を分ける

ブラウザで完結

導入

「点数が80点以上なら優、60点以上なら合格、それ以外は不合格」のように、条件によって処理を変えたいことはよくあります。それを実現するのが if 文です。

説明

graph TD
  A["開始"] --> B{"条件を満たす?"}
  B -- Yes --> C["処理A"]
  B -- No --> D["処理B"]
  C --> E["終了"]
  D --> E

if 条件 から end までが1つのまとまりです。条件が成り立つとき(真のとき)、if の中身が実行されます。

score = 72

if score >= 80
  puts "優"
elsif score >= 60
  puts "合格"
else
  puts "不合格"
end
  • elsifelse if ではなく elsif とつづります)で条件を追加できます。いくつでも書けます。
  • 最後の else は「どの条件にも当てはまらなかったとき」の処理です。省略もできます。
  • Ruby の if はカッコ () が不要で、代わりにブロックの終わりを end で示します。

やってみよう

score の値をいろいろ変えて、どのメッセージが表示されるか確かめましょう。elsif の行を増やして、条件を細かく分けてみてください。

演習

変数 temperature35 を代入し、30 以上なら "猛暑"20 以上なら "適温"、それ未満なら "肌寒い" と表示してください。

ヒント1を見る

if temperature >= 30elsif temperature >= 20else の順で書きます。

ヒント2を見る

各枝の中で puts "猛暑" のように表示します。

実際に動かしてみよう

下のエディタにRubyを書いて「実行」を押すと、学習用シミュレータが puts / print / p の出力を表示します(本物のRubyではなく、教材の範囲を再現した軽量な自作エンジンです)。配列・ハッシュ・ブロック(each/map/select)・メソッド・クラス・モジュール・例外なども動きます。本文の例を書き換えて動かしてみましょう(gem・Rails・ファイル入出力など一部の機能は対象外です。文字列を伸ばすときは str << も可能ですが、変数に反映されるのは str += です)。

Ruby — ブラウザ内で実行(学習用シミュレータ)

Rubyの教材サブセットを動かす学習用シミュレータを読み込みます(本物のRubyではなく、動きを再現した軽量な自作エンジンです)。
スクロールして表示された時点でも自動で読み込まれます。