【Ruby入門】ifとelseについて
  • facebookページ
  • twitterページ
  • 2017.09.12

    【Ruby入門】ifとelseについて

    Rubyというと、まつもとゆきひろ氏のイメージや日本で誕生したプログラミング言語、といった華やかな雰囲気があります。よって、どうしても特別なものとして見がちですよね。

    Rubyは順次・選択・反復という制御構造をもちます。これは他の言語と変わりません。本記事で取り上げる、条件分岐を実装するときに使う「ifとelse」も、他言語とそう変わらない特徴のその一つです。

    本記事では、Rubyにおける条件分岐やifとelseについて、さらにRuby特有の、

    ・ifの反対のunless
    ・正規表現を直接ifの条件式に入れる

    といった特徴に触れます。

    Rubyのif else 基本形

    Rubyの if else は以下が基本形です。

    他言語を経験された方は、あまりにおなじみの形式なので拍子抜けしたのではないでしょうか?強いていうなら、JavaやPHPと異なり、elseifではなくelsifと、eがないことくらいでしょうか。

    早速Rubyのif文を書いてみましょう。入力した値がpotepanなら「入力した値はポテパンです!」と表示し、そうでなければ「ポテパンじゃありません…」と表示させます。

    chompメソッドは、入力値の最後の改行を除去します。実行後、pateponと入力してEnterします。

    [実行結果]

    次に、potepanと入力してEnterします。

    [実行結果]

    この例ではpotepanと等しいかそうでないかという2つの条件分岐でした。では、3つの条件分岐になるとこうなります。例として、入力値がゼロまたは正負のいずれかを判断します。gets.chompの次に付けたto_iは、文字列を数値に変換するメソッドです。

    これで、入力値に応じてゼロまたは正負かを判断して結果を表示します。

    条件式が1つならRubyのifはシンプルに

    条件が1つだけの場合、よりシンプルな記述ができます。

    これをif修飾子といいます。if以降の条件式がtrueを返せば、ifの左の処理を実行し結果を戻り値として返します。条件式がfalseを返すと、処理結果はnilになります。具体例を示します。

    ゼロを入力した場合のみ「ゼロです」と表示されます。それ以外の数値を入力した場合、処理が実行されず、戻り値はnilになります。

    ifとは逆のunless

    Rubyにはifの動作に似たunlessというものがあります。これはifとは逆で、条件式がfalseを返すときに処理を実行します。falseになることが普通の条件式によく使います。

    以下が基本形です。

    ifと異なり、elsifは使えません

    unlessを使い、前述ifで紹介したコードを実装してみましょう。通常は何でも入力するけど、たまたまpotepanと入力したときに「ポテパンです!」と表示させる仕様と思ってください。

    pateponと入力してEnterを押下します。

    [実行結果]

    ifと逆の動作をすることがお分かりいただけたでしょうか。

    unlessにもある省略形

    ifと同じく、unlessにも省略形が存在します。unless修飾子といいます。

    具体的に実装は以下のようになります。

    ゼロ以外を入力すればゼロ以外です、と表示され、ゼロを入力したら何も表示されません。

    if修飾子と逆の動作になったことがわかります。

    Rubyではifに正規表現が使える

    Rubyでは、ifの条件式に正規表現を使うことが可能です。正規表現をifの条件式に記述して・・・というのはどの言語でもありますが、Rubyではこうなります。文字列がメールアドレスかどうかを正規表現で確認してみましょう。

    メールアドレスの形式かどうかによって、メッセージを振り分けています。

    ifの条件式の演算子に=~を使うと、ifの条件式の中に直接正規表現を書くことができます。専用のメソッドなり関数なりを呼び出して、戻り値を取って・・・とする必要はないので、シンプルですね。

    まとめ

    意外と普通といいながら、変わった特徴を含んだifとulessを解説しました。Rubyでコーディングする上で条件分岐は必ずマスターする必要があります。条件式を変えたり、ifで書いたものをunlessで書き直したりしてマスターしてくださいね!


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料10万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテキャンバナー ポテキャリバナー

    この記事をシェア

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

    関連ワード

    pickup









    ABOUT US

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

    READ MORE