Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

「if」文は、ある条件の時だけ特定の処理を行ったり、条件によって処理を分けたりする時に使用する制御構文です。

プログラムを作る上で「if」文は絶体に避けては通れない構文であり、使い方によってコードの可読性が大きく損なわれたりもします。

この記事では、Rubyの「if」文の使い方を解説していきます。

Rubyでの if文(構文)

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

まずは、単一条件式のif構文です。

if 条件式 then
  #条件式が一致した時に実行される処理
end

条件式に一致しなかった時に実行される処理が必要な場合は、elseを使って処理を振り分けます。

if 条件式 then
  #条件式が一致した時に実行される処理
else
  #条件式に一致しなかった時に実行される処理
end

条件1の時は「処理A」を、条件2の時は「処理B」のように、複数の条件式を使って処理を振り分ける場合は、elsif構文を使用します。

if 条件式1 then
  #条件式1に一致する時に実行される処理
elsif 条件式2
  #条件式2に一致する時に実行される処理
else
  #どの条件にも致しなかった時に実行される処理
end
ポテパンダの一言メモ

Rubyのelsifは、Javaや他の言語ではelse ifと書くことが多いため、他の言語からRubyを学んでいる方は、構文の違いに注意しましょう。

以降の内容では、Rubyのifを実際に使ったサンプルコードをいくつか紹介していきます。

数値の比較する条件式(if文)

if文で数値や文字列を比較ときは、次の表にある「比較演算子」を使用します。

比較演算子 説明
x == y 等しい
x != y 等しくない
x < y xyより小さい
x > y xyより大きい
x <= y xy以下
x >= y xy以上

では、比較演算子の==, !=, <, >, <=, >=使って、数値を比較するif文のサンプルコードを見ていきましょう。

# valueが100と等しい
if value == 100 then
  puts "valueは'100'です"
end

# valueが100以外
if value != 100 then
  puts "valueは'100'ではありません"
end

# valueが100より小さい
if value < 100 then
  puts "valueは'100'より小さい"
end

# valueが100より大きい
if value > 100 then
  puts "valueは'100'より大きい"
end

# valueが100以下
if value <= 100 then
  puts "valueは'100'以下"
end

# valueが100以上
if value >= 100 then
  puts "valueは'100'以上"
end

数値の範囲をシンプルに比較する

例えば、数値が1〜10の範囲内にあるか比較をするとき、次のようなコードをよく書きます。

value = 3

if value >= 1 and value <= 10 then
  puts "valueは1〜10の範囲内です"
end

間違った書き方ではありませんが、上のようなコードでは一見して範囲チェックを行なっているコードが分かりづらいです。

Rubyでは、範囲オブジェクトであるRangeを使用して、シンプルなコードで数値の範囲チェックを行えます。

次のサンプルコードは、数値が1〜10の範囲内であるかのチェックを、Rangeオブジェクトを使って判定する例です。

value = 3

if (1..10) === value then 
  puts "valueは1〜10の範囲内です"
end
【実行結果】
------------------
valueは1〜10の範囲内です

また、Range#cover?メソッド を使っても、同じような判定を行うことができます。

value = 3

if (1..10).cover?(value) then 
  puts "valueは1〜10の範囲内です"
end

文字列の比較する条件式

文字列の比較も、数値の同じように「比較演算子」を使用します。

また、指定した文字が文字列に含まれていることや、正規表現などを使って複雑な文字列の判定を行う条件式も作れます。

文字列の一致を判定

まずは、比較演算子の==を使用して、2つの文字列が一致するか判定するif文を作成してみましょう。

str = "Ruby"

if str == "Ruby" then
    puts "Rubyと等しい"
else
  puts "等しくありません"
end
【実行結果】
------------------
Rubyと等しい

上とは逆に、文字列の不一致を判定する場合は、!=を使用します。

if str != "Ruby" then
  puts "Rubyと等しくありません"
else
    puts "Rubyと等しい"
end

文字列の大小判定

文字列も数値と同じく、比較演算子の「」「=」を使って大小比較ができます。

比較は文字コードで行われ、英字であればアルファベット順、日本語のひらがなであれば五十音順に比較が行われます。

次のサンプルコードは、アルファベットの文字の大小比較を行う例です。

str = "A"

if str < "B" then
  puts "strは'B'よりも小さい"
end
【実行結果】
------------------
strは'B'よりも小さい

次のサンプルコードでは、”ABC”と”B”の文字列を大小比較しています。
文字列の比較は先頭文字から行われるため、一方の文字数が多くても、先頭文字の大小関係で判定されます。

str = "ABC"

if str < "B" then
  puts "strは'B'よりも小さい"
end
【実行結果】
------------------
strは'B'よりも小さい

アルファベットの大文字(A-Z)と小文字(a-z)では、大文字のほうが文字コードの割り当てが前にあるため、大文字・小文字を大小比較すると大文字のアルファベットの方が小さく判定されます。

if "A" < "a" then
  puts "'A'の方が小さい"
end
【実行結果】
------------------
'A'の方が小さい

ひらがなも同様に、五十音順で文字列の大小比較が行われます。

str = "あ"

if str < "い" then
  puts "strは'い'よりも小さい"
end
【実行結果】
------------------
strは'い'よりも小さい

ひらがなとカタカナは、ひらがなのほうが文字コードの割り当てが前にあるため、大文字・小文字を大小比較するとひらがなの方が小さく判定されます。

str = "あ"

if str < "ア" then
  puts "strは'ア'よりも小さい"
end
【実行結果】
------------------
strは'ア'よりも小さい

漢字の比較は、その文字に割り当てられた文字コードでの大小比較となります。
読みの五十音順にならないことに注意が必要です。

str1 = "朝"  #0x671D
str2 = "月"  #0x6708

if str1 < str2 then
  puts "str2が大きい"
else
  puts "str1が大きい"
end

このように「朝(あさ)」と「月(つき)」では、読みの五十音順で見ると「朝」の方が前ですが、漢字に割り当てられた文字コードが「月」の方が小さいため、この2つの文字を大小比較すると「月」が小さいと判定されます。

【実行結果】
------------------
str1が大きい
ポテパンダの一言メモ

Ruby 2.0以降において、コード上で扱う日本語などのマルチバイト文字は、UTF-8がデフォルトとして用いられています。
日本語の比較を行う時は「UTF-8」の文字コードで行われることを意識しておきましょう。

Rubyのif文をマスター

Rubyのif構文を使用して、数値や文字列を比較する方法を解説してきました。
条件分岐はプログラミングの基本ですので、しっかり学習しておきましょう。

【関連記事】
【Ruby】繰り返し(ループ)処理の基本 for文の使い方を理解しよう!

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。