Rubyのif文で条件分岐!数値や文字列の比較方法を解説
  • facebookページ
  • twitterページ
  • 2021.02.25

    Rubyのif文で条件分岐!数値や文字列の比較方法を解説

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

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

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

    Rubyでの if文(構文)

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

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

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

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

    ポテパンダの一言メモ

    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文のサンプルコードを見ていきましょう。

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

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

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

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

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

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

    文字列の比較する条件式

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

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

    文字列の一致を判定

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

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

    文字列の大小判定

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

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

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

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

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

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

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

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

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

    ポテパンダの一言メモ

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

    Rubyのif文をマスター

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

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



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE