Rubyのcase文!初心者でもマスターできる5つのステップ – Japanシーモア

Rubyのcase文!初心者でもマスターできる5つのステップ

初心者がRubyのcase文を理解するためのガイドRuby
この記事は約6分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

このサービスは複数のSSPによる協力の下、運営されています。

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読むことで、あなたはRubyのcase文の使い方を初心者から段階的に学ぶことができます。

基本的な使い方から詳細な使い方、注意点とその対処法、そしてカスタマイズ方法まで、具体的なサンプルコードを用いて丁寧に解説していきます。

ぜひ、プログラミングのスキルアップにお役立てください。

●Rubyとは

Rubyは、シンプルさと高い生産性を重視したプログラミング言語であり、日本で生まれました。

文法が直感的で理解しやすく、コードの可読性が高いことから、初心者にもオススメの言語として知られています。

●case文の基本

Rubyのcase文は、特定の条件に基づいて異なる処理を行うための制御構造です。

いわゆる「条件分岐」を行うもので、同じことをif文でも実現できますが、case文は特に多くの条件を列挙する際に可読性が高いとされています。

○基本的な使い方

case文の基本的な使い方は次の通りです。

case 変数
when 条件1 then
  # 条件1に合致したときの処理
when 条件2 then
  # 条件2に合致したときの処理
else
  # いずれの条件にも合致しないときの処理
end

“case 変数”に続いて、”when 条件”を列挙します。

これにより、変数の値によって実行される処理が異なります。

○サンプルコード1:基本的なcase文

Rubyでcase文を用いて書かれたサンプルコードを紹介します。

このコードでは、整数値の”num”によって表示するメッセージが変わるようにしています。

num = 3

case num
when 1 then
  puts "num is 1."
when 2 then
  puts "num is 2."
else
  puts "num is neither 1 nor 2."
end

このコードを実行すると、「num is neither 1 nor 2.」と表示されます。

なぜなら、変数”num”の値が3であり、それは条件1(numが1である)も条件2(numが2である)も満たさないからです。

●case文の詳細な使い方

case文では、条件に配列や範囲を指定することも可能です。

また、”then”の代わりに改行を入れることで、より読みやすいコードにすることができます。

○詳細な使い方の概要

詳細な使い方は次の通りです。

case 変数
when 条件1
  # 条件1に合致したときの処理
when 条件2
  # 条件2に合致したときの処理
else
  # いずれの条件にも合致しないときの処理
end

“when 条件”の後に”then”を使わず、そのまま改行して次の行から処理を記述します。

○サンプルコード2:詳細なcase文の使用例

詳細な使い方のサンプルコードを紹介します。

このコードでは、変数”num”の値が1から5の範囲に含まれるかどうか、または10, 15, 20のいずれかであるかを判定しています。

num = 15

case num
when 1..5
  puts "num is in the range of 1 to 5."
when 10, 15, 20
  puts "num is either 10, 15, or 20."
else
  puts "num is out of the specified conditions."
end

このコードを実行すると、「num is either 10, 15, or 20.」と表示されます。

変数”num”の値は15であり、それは指定した範囲または配列の中に含まれているからです。

●case文の注意点と対処法

Rubyのcase文を使用する際には、いくつかの注意点とそれに対する対処法を理解しておくことが重要です。

○注意点

1つ目の注意点は、case文は最初に一致した条件のみを実行し、それ以降の条件は無視するという点です。

そのため、同じ条件が複数存在する場合でも、最初に記述したものだけが実行されます。

2つ目の注意点は、case文の比較は”===”演算子を用いて行われるという点です。

これにより、整数値だけでなく、範囲や正規表現なども条件として使用できるのですが、同時に予想外の挙動を引き起こす可能性もあります。

たとえば、配列やハッシュを比較する際には注意が必要です。

○対処法

上記の注意点を踏まえた対処法としては、次の2つが挙げられます。

1つ目は、重複する条件がないようにすることです。

これはコードの冗長性を防ぎ、誤解を生じさせないための基本的なルールです。

2つ目は、”===”演算子の挙動を理解し、意図した結果を得るために適切な条件を設定することです。

例えば、配列やハッシュの要素を一つずつ比較する場合には、each文と組み合わせるなどして対応します。

●case文のカスタマイズ方法

case文は、その基本的な形状を保ったままでも、多くの場面で活用することができます。

しかし、必要に応じて様々な方法でカスタマイズすることも可能です。

○カスタマイズ方法の概要

一つの方法は、case文に直接式を書くことです。

これにより、条件を満たすかどうかはその式の結果に依存するようになります。

また、when節で複数の条件を指定したい場合は、条件をコンマで区切ることもできます。

さらに、case文の条件には範囲や正規表現なども使用できます。

これにより、より複雑な条件分岐を効率的に記述することができます。

○サンプルコード3:カスタマイズしたcase文の使用例

カスタマイズしたcase文の使用例を紹介します。

このコードでは、文字列の長さによる条件分岐を行っています。

また、正規表現を使用して、特定のパターンにマッチするかどうかも判断しています。

str = "Hello, Ruby!"

case str.length
when 0..5
  puts "The string is short."
when /Ruby/
  puts "The string includes 'Ruby'."
else
  puts "The string is long and does not include 'Ruby'."
end

このコードを実行すると、「The string includes ‘Ruby’.」と表示されます。

なぜなら、変数”str”の長さは”Hello, Ruby!”の12文字であり、範囲の1から5の間には含まれていませんが、文字列に”Ruby”が含まれているためです。

まとめ

Rubyのcase文は非常に強力で、条件分岐を一元管理することでコードの見通しを良くするだけでなく、コードの冗長性を防ぐ効果もあります。

基本的な使い方から始め、その特性を理解し、最終的には自分のニーズに合わせてカスタマイズすることができます。

本記事では、まずRubyのcase文の基本的な使い方から始め、その後で注意点とそれに対する対処法を説明しました。

また、case文をさらに活用するためのカスタマイズ方法についても解説しました。

各部分では具体的なサンプルコードを通じて、理論だけでなく実践的な理解を深めることを目指しました。

これらを通じて、初心者でもRubyのcase文を効率的に使用することができるようになるでしょう。

また、一度基本を理解したら、自身の問題解決に必要な機能を追加するためのカスタマイズも可能となります。

コーディングは継続的な学習が鍵となります。

ぜひこの記事を手始めに、Rubyのさまざまな機能を活用して、より効果的なプログラムを作成していきましょう。