Ruby if elseを即理解!頻繁に使う3つの便利な知識も紹介

web開発

2016/07/01

web開発

今回はプログラミング言語Rubyのif else(if文)を扱います。

Ruby if elseは、条件分岐と言われており、「もし〇〇なら××をする」といったようなことをソースコードに記述していきます。

今回は、Ruby if elseの基本的な書き方と具体的なソースコードを用いて丁寧に解説します。

また、Ruby if elseをたった1行で記述できる便利な方法も紹介します。

また、if elseと似たものとして、unless文というのがあります。本記事では、unless文も紹介します。

さらには、Ruby if elseはcase文という書き方で書き換えることができます。本記事では、Ruby if elseをcase文に書き換える方法も紹介します。

どれも頻繁に使うので是非マスターしてください。

本記事だけで、Ruby if elseについて盛りだくさんの内容となっております。ぜひ最後までお読みください。

Ruby if elseの 書き方

まずはRuby if elseの基本的な書き方を紹介します。以下のように記述します。

【Ruby if else書き方】

if 条件式1

条件式1が正しい場合に実行するプログラム

elsif 条件式2

条件式2が正しい場合に実行するプログラム

else

条件式1も条件式2も正しくない場合に実行するプログラム

end

プログラミング言語Rubyでif elseを記述するときには、elseとifの間にスペースを空けないように注意しましょう。

また、Rubyでは、「elseif」ではなく「elsif」です!「else」の最後の「e」は付きませんので注意してください。

この書き方だけだと理解しにくいので、具体的なソースコードを紹介します。

language = “Ruby”

if language == “PHP”

puts “言語はPHPです。”

elsif language == “Ruby”

puts “言語はRubyです。”

else

puts “言語はPHPでもRubyでもありません。”

end

【結果】

言語はRubyです。

今回は変数languageにRubyを代入しています。なので、出力結果は「言語はRubyです。」となります。

Ruby if elseで、条件式を記述する時は、イコール(=)が2つ付くことに注意しましょう。

 

Ruby if elseを1行で記述する方法

Ruby if elseは、1行で記述することもできます。

1行で記述する時のパターンは2つあります。

Ruby if elseを1行で記述:パターン1

Ruby if elseを1行で記述する場合は、条件式の後ろにthenを記述する必要があります。

if 条件式 then 処理 end

では、具体的なソースコードでみていきましょう。

if num % 2 == 0 then puts “偶数です。” end

変数numが2で割れたら”偶数です。”と表示するプログラムですね。

なお、elsifやelseなどを用いるプログラムを1行で記述することはあまりないと思われるので、本記事では、ifのみを使う場合に限ってRuby if elseを1行で記述する方法を紹介しています。

Ruby if elseを1行で記述:パターン2

Ruby if elseを1行で記述する方法2つ目です。以下のように、「if 条件式」を後ろに置くこともできます。

Rubyプログラマーは、この「倒置のif」を頻繁に使います。

処理 if 条件式

では、具体的なソースコードを紹介します。先ほど紹介したプログラムをパターン2で記述してみましょう。

puts “偶数です。” if num % 2 == 0

このソースコードは直感的にもわかりやすいのではないでしょうか?

この書き方は頻繁に使うので、慣れておきましょう。

 

Ruby if elseとunlessについて

Ruby if elseの他に、条件式が正しくない時にプログラムを実行するunless文というのもあります。

unlessでは、Ruby if elseと同様にelseを記述できますが、elsifにあたるものは記述できません。

具体的なソースコードを1つ紹介します。

unless num % 2 == 0

puts “偶数ではありません。”

end

unlessの後の条件式が正しくない時、すなわち「numが2で割り切れない時」に「偶数ではありません。」と表示するプログラムです。

Ruby if elseでは条件式が正しい時、unlessでは、条件式が正しくない時にプログラムが実行されるという違いを頭に入れておきましょう。

 

Ruby if elseをcase文で書き換える

Ruby if elseは、case文に書き換えることができます。

「もし〜なら、もし〜なら、」が長くなった時は、case文を使うことでスッキリと表現できます。

if~elsif~elseを、case文で書き換えると、以下のような記述方法になります。

【case文の書き方】

case 変数

when 式1

「式1===変数」の場合に実行するプログラム

when 式2

「式2===変数」の場合に実行するプログラム

else

変数がどれにも当てはまらない場合に実行するプログラム

end

※case文では、「==」ではなく「===」で演算子の比較が行われます。

さすがにこれだけではわかりにくいので具体例を紹介します。

例えば、おみくじの結果をランダムに表示させるプログラムを作ってみます。

数字は0~3までランダムに決まるとします。

数字が0の時は大吉、1の時は中吉、2の時は吉、それ以外(3)の時は小吉とします。

num = rand 4

case num

when 0

puts “大吉です。”

when 1,

puts “中吉です。”

when 2

puts “吉です。”

else

puts “小吉です。”

end

※1行目のrandについて

=randは乱数を発生させるメソッドで、randの後ろに数字を指定すると0からその数未満の数字をランダムにnumに代入します。

このプログラムをRuby if elseで記述すると、以下のようになりますね。

【Ruby if elseで記述した場合】

num = rand 4

if num == 0

puts “大吉です。”

elsif num == 1

puts “中吉です。”

elsif num==2

puts “吉です。”

else

puts “小吉です。”

end

Ruby if elseで記述するよりもcase文で記述したほうがスッキリしていて見やすいソースコードであることがお分かり頂けたかと思います。

 

以上がRuby if elseについての説明です。

プログラミング言語Rubyができるようになってくると、Railsというフレームワークを使ってWEB開発(Ruby on Rails)ができるようになります。

udemyでも、初心者に易しいRuby on Railsの講座を開設しているので、ぜひご覧ください。

  

Ruby on Railsを学ぶならこちらの講座がおすすめです

【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) - Udemy

【3日でできる】はじめての Ruby on Rails 4 入門(Rubyから学べる) - Udemy

Ruby on Railsをマスターしたら、あなたはどんなWebサービスを作りますか?

動画で学習する

  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー
  • シェア
  • ツイート
  • Poket
  • はてなブックマーク
  • フォロー

関連記事