case~when文

スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 |
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般

if~elsif文が長く続く場合は、case~when文で代替すると、コードが見やすくなります。

スポンサーリンク

Rubyのcase~when文は、PHPやCで言うところの、switch~case文の働きに似ています。
使い方も大体同じような感じですが、文の最後に書くデフォルト値として、defaultでなくelseを書きます。
また、CやPHPのswitch~case文では、一つ一つのcase文にbreakをつけますが、Rubyのcase~whenのwhen文には、breakをつけません。

require "date"
 
now_time = DateTime.now.hour
puts "now: #{now_time}"
 
case now_time
when 0..9
    puts "Goog morning !"
when 12
    puts "Lunch time !"
when 10..20
    puts "Hello !"
else
    puts "Good evening !"
end

午後19時20分頃に上記のスクリプトを実行しました。
実行結果。

now: 19
Hello !

「when 10..20」の条件がtrueと評価されますので、「Hello !」が表示されます。
なお、case~when文では、whenで指定した値に一致するかどうかの評価を、「===」演算子を使って判定します。

スポンサーリンク
 
スポンサーリンク