今回はプログラミング言語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について盛りだくさんの内容となっております。ぜひ最後までお読みください。
公開日:2016年7月1日
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つ付くことに注意しましょう。
\文字より動画で学びたいあなたへ/
Udemyで講座を探す >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)ができるようになります。
はじめてのRuby on Rails入門-RubyとRailsを基礎から学びウェブアプリケーションをネットに公開しよう
Rails7対応。汎用性が高くPythonやPHPと同様に人気のある Rubyを使ってWebアプリケーション開発に挑戦しよう。基礎からAWSでの開発環境構築、Renderを使ってインターネットに公開するまでを体系的に学べる
\無料でプレビューをチェック!/
講座を見てみる評価:★★★★★
説明がわかりやすくRuby on railsの基礎と概要をしっかりと学ぶことができました。
一つの動画が短くタイトルで内容がわかるので、後から確認する際にとても役に立っています。
ありがとうございました。
評価:★★★★★
HTML・CSS・JavaScript・Ruby等Progateで一通りやってから受講しましたが、一度はつまづいてしまったRailsを使った学習をとりあえず最後までやることが出来ました。動画の最後にもありましたが完成したアプリを自分なりに編集したりして学習を続けたいと思います。
最新情報・キャンペーン情報発信中