↓↓クリックして頂けると励みになります。
【09 | 論理演算】 << 【ホーム】 >> 【11 | 配列】
Rubyのcase文は、条件分岐を行うための制御構造の一つです。
通常、case文は特定の式や値に基づいて複数の条件を評価し、条件に一致するブロックを実行します。
Visual Studio Codeで以下のプログラムを作ってみましょう。
新規作成 【casetest1.rb】
# casetest1.rb char = 'B' case char when 'A' then puts 'AAAAAAAAAA' when 'B' then puts 'BBBBBBBBBB' when 'C' then puts 'CCCCCCCCCC' end
まず、case文の構成を見てください。
case 条件 when 条件1 then 実行文 when 条件2 then 実行文 when 条件 then 実行文 else 実行文 end
このcase文はif文と同じで、条件分岐に使います。
if文より内容が直感的にわかり見やすいというのが特徴です。
ただ、複雑な条件分岐には使用できないのが欠点です。
caseの条件に当てはまれば、whenで指定した条件が順番に処理されていきます。
caseの条件に当てはまれば、実行文が実行されcaseを抜けます。
どのcaseにも当てはまらない場合は、elseの実行文が実行されます。
caseの条件は何個でもつなげることができます。
ではプログラムの実行結果を確認しましょう。
ruby casetest1.rb
BBBBBBBBBB
Visual Studio Codeで以下のプログラムを作ってみましょう。
新規作成 【casetest2.rb】
# casetest2.rb require 'date' time = DateTime.now hour = time.hour case hour when 6..11 then puts 'おはようございます。' when 12..16 then puts 'こんにちは。' when 17..21 then puts 'こんばんは。' else puts 'おやすみなさい。' end
現在の時間を取得するためにrequire 'date'
でdateパッケージを取得しています。
time = DateTime.now
hour = time.hour
DateTimeを使って現在の時間を取得して変数time代入、さらに time.hour
で時間のみを取り出して変数hourに代入しています。
出力結果です。
~/Desktop/Programming/RB $ ruby casetest2.rb おはようございます。
if文で書き換えてみます。
新規作成 【iftest6.rb】
# iftest6.rb require 'date' time = DateTime.now hour = time.hour if hour > 5 && hour < 12 then puts 'おはようございます。' elsif hour < 17 then puts 'こんにちは。' elsif hour < 21 then puts 'こんばんは。' else 'おやすみなさい。' end
実行結果も同じです。
~/Desktop/Programming/RB $ ruby iftest6.rb おはようございます。
【09 | 論理演算】 << 【ホーム】 >> 【11 | 配列】
↓↓クリックして頂けると励みになります。