条件分岐の手法【Ruby/if/case】

mycompilerでコード編集からコンパイル、実行まで行えます。

Rubyで条件分岐を行う『if』『case』の使い方をマスターしましょう。

『if』は有名なコードなのでよく知っている方は多いでしょうが、『case』はご存知でしょうか?

このページで詳しく解説します。

条件分岐『if』『case』の解説と基本構文

まずは『if』『case』の解説と使用するための構文を紹介します。

・ifの解説と構文

『if』は条件、実行内容と共に記述することで「if(もし)条件に合致するなら実行内容を行う」という意味合いで使います。

if文は条件提示を始める『if+条件1+実行内容1』を始めに記述し、条件を追加したい時には『elsif+条件2+実行内容2』、『elsif+条件3+実行内容3』、・・・と続け、最後に『end』で終わります。

最後に、どの条件にも合致しない時には「その他」の意味で『else+実行内容』を使うことができます。

ifの構文を見てみましょう。

#ifの構文

if 条件1 
   実行内容1
elsif 条件2
   実行内容2
elsif 条件3
   実行内容3
else
   実行内容
end

・caseの解説と構文

『case』は条件、実行内容と共に用いることで「条件に一致するcase(場合)に実行内容を行う」という意味合いで使用します。

構文は『case+変数』を定義した後『when 条件+実行内容』や『else+実行内容』などが使用でき、最後に『end』で終わります。

構文を見てみましょう。

#caseの構文

case 変数など
  when 条件1
    実行内容1
  when 条件2
    実行内容2
  when 条件3
    実行内容3
  else
    実行内容
end

条件分岐『if』の例文

ifの基本的な例文を紹介します。

下記でif文について学びましょう。

#ifの例文

num=12

if num>=15
   puts "numは15以上です"
elsif num>=10
   puts "numは10以上15未満です"
elsif num>=5
   puts "numは5以上10未満です"
else
   puts "numは5未満です"
end
#実行結果

numは10以上15未満です

上の例では『num>=10』という条件に合致したため、1行下の出力コードが実行された訳です。

if文を使うときの注意点

ifの使い方は難しくありませんが、条件分岐が上から順に実行されることを念頭に置いておかないと誤ったコードを実行してしまうことがあります。

例えば、例文の条件を上下で入れ替えると以下のような実行結果が出力されます。

#ifの注意点

num=12

if num>=5
   puts "numは5以上10未満です"
elsif num>=10
   puts "numは10以上15未満です"
elsif num>=15
   puts "numは15以上です"
else
   puts "numは5未満です"
end
#実行結果

numは5以上10未満です

結果は誤っていませんが、本来の目的であった近い値を出力することができていません。

これはプログラミングが上から順に実行される事と、if文ではいずれかの条件に合致、実行されると他の分岐を実行しない性質が関係しています。

1個目の『if num>=5』に合致したため、以降の条件分岐が行われずに『end』へと進んでしまった訳です。

条件は狭い範囲から定義していきましょう。

条件分岐『case』の例文

次にcaseの例文です。

#caseの例文

num=12

case num
when 15..19
   puts "numは15以上19以下です"
when 10..14
   puts "numは10以上14以下です"
    when 1..9
   puts "numは1以上9以下です"
else
   puts "numは1未満もしくは20以上です"
end
#実行結果

numは10以上14以下です

以上でRubyの条件分岐の手法『if』と『case』についての解説を終わります。

コメント