ネストした If - Else
CoddyのRubyジャーニー「基礎」セクションの一部。レッスン 24/88。
2つを超える条件を確認する必要がある場合はどうすればよいでしょうか?if-else文を別のif-else文の中に配置できます。これはネストと呼ばれ、複数の判断ポイントに対応できます。
score = 85
if score >= 90
puts "Grade: A"
else
if score >= 80
puts "Grade: B"
else
puts "Grade: C"
end
endRubyは最初の条件を確認します。それがfalseの場合、別のif-elseが待機しているelseブロックに進みます。これにより、決定の連鎖が作られ、それぞれの決定によって可能性がさらに絞り込まれます。
Rubyでは、elsifを使うことで、よりすっきりと記述できます。elsifはelseとifを1つのキーワードにまとめたものです。
score = 85
if score >= 90
puts "Grade: A"
elsif score >= 80
puts "Grade: B"
else
puts "Grade: C"
endどちらの例も同じ結果になりますが、elsifを使うとコードの入れ子を減らし、読みやすくできます。必要な数だけelsif条件を連鎖させることができ、最後のelseは、それまでの条件に一致しないものをすべて処理します。
チャレンジ
簡単次の変数が与えられています。
temperature = 15if、elsif、elseを使用して温度を分類し、適切なメッセージを出力する天気 advisory システムを作成してください。
temperatureが30以上の場合、Hot - Stay hydratedを出力するtemperatureが20以上の場合、Warm - Enjoy the dayを出力するtemperatureが10以上の場合、Cool - Bring a jacketを出力するtemperatureが0以上の場合、Cold - Bundle upを出力する- それ以外の場合、
Freezing - Stay indoorsを出力する
温度に一致する単一のメッセージだけを出力してください。
自分で試してみよう
temperature = 15
# TODO: 温度を分類するために、以下にコードを書いてください
# if、elsif、else を使って適切な天気に関する注意メッセージを出力してくださいこのレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ