Ruby case whenを即理解!知っていると便利な3事例も紹介

web開発

2016/06/22

web開発

今回はプログラミング言語Rubyのcase when(case文)を扱います。

Rubyのcase whenは、コードが直感的にわかりやすく、if文(if~elseif~else)をシンプルに記述することができるとても便利な式です。

そして、今回はそんなRuby case whenの基本的なコードの書き方に加えて、知っておくと非常に便利なcase when(複数の値を指定する時・値の範囲を指定する時・配列を指定する時)の3つのパターンも解説します。

どれもコードの具体例を用いてRubyでcase whenを解説していくので、プログラミングやRubyを学習し始めたばかりの人でも本記事を読めば必ずRuby case whenが理解できる内容です。

ぜひ最後までお読みください。

Ruby case whenの書き方

まずはプログラミング言語Rubyでのcase whenのコードの書き方を見ていきましょう。

【 Ruby case whenの書き方 】

case 変数

when 値1

「値1==変数」の時に実行するプログラム

when 値2

「値2==変数」の時に実行するプログラム

else

変数がどれにも当てはまらない時に実行するプログラム

end

この例だけだとイメージしにくので、具体例を紹介します。

※「#」から改行まではコメント(プログラムの動作に影響を与えない)です。

【 Ruby case whenの具体例 】

num=1

#1を変数numに代入

case num

when 1

puts “1は大吉です。”

when  2

puts “2は中吉です。”

else

puts “1と2以外は小吉です。”

end

【 結果 】

1は大吉です。

今回の場合は変数numの値が1だったので、「1は大吉です。」と表示されました。

numを2に変更すると、「2は中吉です。」となりますし、numを1と2以外(3や500など)にすると、「1と2以外は小吉です。」と表示されます。

以上がRuby case whenの基本的なコードです。

Ruby case whenが直感的にわかりやすいことが理解頂けたかと思います。

 

Ruby case whenで複数の値を指定する

先ほどのcase whenでは、numが1の場合のみ大吉、2の場合のみ中吉、それ以外は小吉でした。

今度はnumが1と2の場合は大吉、3と4の場合は中吉、それ以外は小吉というcase whenにしてみましょう。

case whenで値が一致しているかを複数調べたい場合は、以下のように、whenの後の値を「,(カンマ)」で区切って指定します。

【 Ruby case whenで複数の値を指定 】

case 変数

when 値1, 値2

・・・

では、numが1と2の場合は大吉、3と4の場合は中吉、それ以外は小吉というcase whenのコードを書いてみましょう。

num=3

case num

when 1, 2

puts “1と2は大吉です。”

when 3, 4

puts “3と4は中吉です。”

else

puts “1〜4以外は小吉です。”

end

【 結果 】

3と4は中吉です。

今回は3をnumに代入しているので、中吉となります。

このRuby case whenも直感的にわかりやすいのではないでしょうか?

 

Ruby case whenで値の範囲を指定する

今度はnumが1~50の場合は大吉、51~100の場合は中吉、それ以外は小吉というcase whenのコードにしてみます。

値が大きくなり、さすがにwhen 1, 2, 3, 4…と書くのは無理そうです。

今回のようにcase whenで値の範囲を指定したい場合は、whenの後の値を「..」(ピリオドを2つ)付けて指定します。

【 Ruby case whenで値の範囲を指定 】

case 変数

when 値1..値2

・・・

では、コードの具体例を紹介します。

num = 70

case num

when 1..50

puts “1~50は大吉です。”

when 51..100

puts “51~100は中吉です。”

else

puts “1~100以外は小吉です。”

end

【 結果 】

51~100は中吉です。

今回は70をnumに代入しているので、中吉となります。

 

Ruby case whenで配列を指定する

いよいよ最後のRuby case when学習です。最後は、配列を指定するパターンです。

例を挙げます。colorという変数にある値が代入されています。その変数colorが配列colors1に含まれている時、配列colors2に含まれている時、それ以外の時で処理を分岐させてみます。

今回のようにcase whenで配列を指定したい場合はwhenの後の配列の前に「*」を付けて指定します。

【 Ruby case whenで配列を指定 】

case 変数

when *配列

・・・

では、上記の例のコードを記述してみます。(今回は文字列を例にしました。)

color = “red”

colors1 = [“blue”, “yellow”, “green”]

colors2 = [“red”, “black”, “white”]

 

case color

when *colors1

puts “redはcolors1にあります。”

when *colors2

puts “redはcolors2にあります。”

else

puts “redはどこにもありません。”

end

【 結果 】

redはcolors2にあります。

今回は”red”をcolorに代入しているので、確かに”red”は配列colors2にありますね。

 

いかがでしたか?Ruby case whenを理解できましたか?

プラグラミング言語Rubyが理解できるようになってくると、Railsというフレームワークを使ってWEB開発ができるようになります。

udemyでもRubyを使ったWEB開発の講座(Ruby on Rails)を開設しているので是非そちらもご覧ください。

  

Ruby on Railsを学ぶならこちらの講座がおすすめです。

【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) - Udemy

【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) - Udemy

Ruby on Railsをマスターしたら、あなたはどんなWebサービスを作りますか?

動画で学習する

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事