- システム開発
- 2016/06/22
Ruby case whenを即理解!知っていると便利な3事例も紹介
今回はプログラミング言語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開発ができるようになります。
エンジニアに役立つ目的別講座
Pythonの基本~応用をマスター
現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門講座。Python3の基本を取得できます。
Webサイトのコーディングができるように
ウェブ開発入門完全攻略コース - プログラミング をはじめて学び創れる人へ!未経験から現場で使える開発スキルを習得!
HTML, CSS, Bootstrap, JavaScript, MySQL, Ruby, Ruby on Rails, AWS Cloud9, Git, GitHubを用いたWebアプリケーション開発の方法を総合的に学べます。
AWSを基礎から学ぶ
これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)
AWSの基本資格「AWS 認定ソリューションアーキテクト – アソシエイト試験」を合格を目指し、そのための知識や経験を獲得できるように!
ITプロジェクトの資料作成はお任せ!
手を動かして学ぶITプロジェクトの資料作成!システム開発のドキュメンテーション技術と成果物テンプレート
ITプロジェクトの資料作成を学べる人気講座。フェーズ毎に、どんな資料を作ればいいのか悩んでいる人におすすめ。
関連記事

Ruby if elseを即理解!頻繁に使う3つの便利な知識も紹介
今回はプログラミング言語Rubyのif else(if文)を扱います。 …

Ruby for式を初心者向けに事例付き解説!これでfor式は完璧
プログラミング言語Rubyのfor式について、プログラミング・Ruby…

Ruby each_with_indexを即理解!値を1から開始させる方法も解説
プログラミング言語Rubyのメソッドの1つであるeach_with_index…

Ruby 配列が初心者でもわかる!7個の重要なメソッドも紹介
プログラミング言語Rubyの配列の使い方を、Ruby初心者向けに解…
最新情報・キャンペーン情報発信中