Rubyのcaseで条件分岐する方法【初心者向け】

条件分岐と言えばif文が有名ですが、case文は、一つのある値に対して、様々な候補の中から条件に適するものを実行したい時に使われます。今回は、そんなcase文について解説していきます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事が4,000以上あります。現役エンジニアの方はこちらをご覧ください。

条件分岐と言えばif文が有名ですが、case文は、一つのある値に対して、様々な候補の中から条件に適するものを実行したい時に使われます。

今回は、そんなcase文について解説していきます。

そもそもRubyがよく分からないという方は、Rubyとは何なのか解説した記事をご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回は条件分岐のひとつ、caseについて説明しよう。

大石ゆかり

田島メンター!!条件分岐っていうとif文がありましたよね。caseはifとどのように違うんですか〜?

田島悠介

caseは複数の条件とそのときの処理をそれぞれ個別に指定することができる便利なものだよ。基本の構造を見てみようか。

大石ゆかり

はい!

 

case文の書き方

Rubyにおけるcase文は、以下のように書きます。

case 対象
when 値A then
値Aと一致した時に実行する処理
when 値B then
値Bと一致した時に実行する処理
else
どの値にも一致しない時に実行する処理
end

といったように書きます。

まず数値や文字列などのオブジェクトを対象として宣言します。

次に「when」の後に一致しているかどうかの値を用意し、一致していればその処理が実行されます。

どの値にも一致しない場合は、else以降の処理が実行されます。

 

thenは省略ができるので、慣れたら書かなくても大丈夫です。

ではこれを実際に使ってある例を挙げましょう。

 

田島悠介

値Aのときはこの処理、値Bのときはこの処理というようにひとつひとつを設定することが可能なんだ。

大石ゆかり

どれの条件にも合わなかったら、else以下の処理が実行されるんですね。なるほど、確かに分かりやすい感じがします。

田島悠介

次にシンプルな例でcase文を書いてみよう。

 

実際にcase文を書いてみよう

実際に先ほど挙げた書き方を使ってcase文を使ってみましょう。

今回は、入力された数字によって実行する処理を変えるプログラムを作ってみます。

case a
 when 1
 puts "1が入力されました"
 when 2
 puts "2が入力されました"
 when 3
 puts "3が入力されました"
 else
 puts "それ以外の数字が入力されました"
 end

 

aの値によって実行される処理が変わってきます。

1が入れば一番最初の文が実行されますし、5が入力されたら、elseの部分が実行されます。

 

いかがだったでしょうか。

このように1つのある値に対して複数の分岐を用意したい時、case文を使うと、プログラムをスッキリさせることができます。

 

田島悠介

caseで指定する対象の変数の中身や、whenで指定する条件にはif文と同様に文字列を入れることもできるよ。

大石ゆかり

これを使えば色々な条件分岐ができそうですね。

田島悠介

管理のしやすさの点でもcaseは便利だと思うよ。実践でも積極的に使ってみよう。

大石ゆかり

そうですね、やってみます!ありがとうございました!

 

[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。