【Ruby】条件分岐case式を徹底解説~正規表現 複数条件~

Ruby

未経験の方にも人気のプログラミング言語Rubyでの条件分岐の一つCase式について基本構文から複数の条件指定、正規表見による判定まで丁寧に解説していきます。

プログラミングにおいて条件分岐は必須の項目です。しっかりと学習して身に着けるようにしましょう。

Case式の基本構文

Case式は、比較演算子などを利用して式や変数の値に応じて複数の分岐処理を行うためのものです。基本構文は以下のようになります。

case 式や変数
when 値1
  # 値1に一致した場合に実行される処理
else
  # どの値にも一致しない場合に実行される処理
end

Case式は指定した式や変数に応じて実行される値を変更できるというお話をしましたが、上記に当てはめると、Caseの後に記載した式や変数の値が、『値1』と一致した場合にその直下に記載されている処理を実行することができます。

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

Case式に複数条件を指定

Case式では複数の条件を指定することもできます。例えば動物の鳴き声を判定する以下のコードで確認してみましょう

animal = "dog"

animal_voice = case animal
when "cat"
  "にゃー!"
when "mouse"
  "チュー!"
when "dog"
  "わん!"
else
  "わからない"
end

puts "この動物の鳴き声は#{animal_voice}です"

この例では変数animalに格納した動物名を比較して条件に一致した場合にanimal_voiceに鳴き声の文字列を代入する条件分岐です。

格納されている値を上から一つずつ比較していき、比較対象と一致した段階でその値が変数に格納されます。

このようにWhenを複数記述することで任意の回数判定を行うことも可能です。

正規表現を使用した条件分岐

正規表現は、特定のパターンに一致する文字列を効率的に検索したり、操作したりすることができます。Case式と組み合わせることで正規表現を用いた条件分岐を行うこともできます。

例えば、フォームの作成などでもよく利用される、電話番号のバリデーションを考えてみましょう。

以下は、電話番号が一般的なフォーマットに合致するかどうかをチェックするコードの例です。

phone_number = "123-4567-8910"

case phone_number
when /^\d{3}-\d{4}-\d{4}$/
  puts "OK"
else
  puts "電話番号の形式が正しくありません"
end

この例では、/^\d{3}-\d{3}-\d{4}$/という正規表現が、phone_numberの値とマッチするかどうかを判定しています。

指定した正規表現の条件に一致すれば、有効な電話番号とみなされOKが返されます。

このようにCase式では正規表現を利用する判定も行うことができます。

まとめ

RubyのCase式は、複数の条件分岐を効率的に記述するための便利な構文です。正規表現を使った条件判定や複数条件の扱い方を理解することで、より複雑なプログラムでも柔軟に分岐処理を行うことができます。

ぜひ、これらのテクニックを活用して、より使いやすく保守性の高いコードを書くことを目指してみてください。

タイトルとURLをコピーしました