「elsifやelseなど、使い分けはどうしたらいいの?」
このように、まだRuby学習を始めたばかりの方はif文(条件分岐)の使い方についてよくわからないかと思います。Rubyは初心者でも習得しやすいプログラミング言語ですが、やはりまだ慣れない方には難しいでしょう。
今回の記事では、Rubyのif文について、実際の書き方やよくあるミスなどについてご紹介するので、ぜひ参考にしてみてください。
Ruby on Railsでできることは?【特徴と開発できるサービス紹介】目次
if文(条件分岐)はどの場面で使うのか
まずはif文について知識を深めていきましょう。if文とは条件を指定して処理の内容を分岐させることができるプログラムの処理方法のことで、複数の条件を元に実行結果を分岐させることができます。
このif文はRubyの他にも様々なプログラミング言語で使用することができる処理で、RubyにはRubyならではの記述方法が、他の言語にはその言語ならではの記述方法があります。
しかしどれも実行内容は同じもので、条件を指定して処理の内容を分岐させることには変わりありません。
条件の分岐というのは、”もし〇〇ならば□□を実行する”といったような内容です。複数の条件を指定することで、〇〇ならば□□、△△ならば××、というような処理を行うことが可能です。
if文の記述方法について
それではif文の記述方法についてご紹介していきます。まずは基本的な記述方法から、少し応用の記述方法についてもご紹介するので参考にしてみてください。
基本的な記述方法
1 2 3 |
if (条件式) then 処理 end |
ifは日本語でいうところの「もし」、thenは「その時」となります。つまりif文の処理の流れとしては、「もし」条件が満たされる「その時」には処理を実行して「end(終了)」するとなります。
例えば以下のかんたんなif文の記述方法を参考にしてみましょう。
1 2 3 4 5 |
# 飲酒できるか確認 age = 19 # ユーザの年齢 if age < 20 then puts "まだお酒は飲めません" end |
上記のプログラムを実行すると、ageは19なので20以下となり、条件が満たされ「まだお酒は飲めません」という実行結果を表示させることができます。
もしageの値を20以上の数値に変えて実施すると、「◯ < 20」という条件を満たすことができないため、プログラムを実行できずputsの結果が表示されません。
では別の簡単なif文の記述例を参考にしてみましょう。
1 2 3 4 5 |
# 色が合っているか確認 color = "red" if color == "red" then puts "赤色です" end |
上記のプログラムでは、変数「color」に文字列である「red」を代入しています。
プログラム通り実行するとcolorはredでtrue(正しい)ため、putsの「赤色です」を処理して表示します。もしそれ以外であればfalse(間違い)となり、プログラムは実行されません。
2つの記述例をご紹介しましたが、「then」という単語は省略することが可能です。特に記述しなくてもプログラムを処理することができますので、開発現場では省略されることがほとんどです。
if elseで複数の条件を処理する記述方法
1 2 3 4 5 6 7 |
if 条件式1 then 処理1 elsif 条件式2 then 処理2 else 処理3 end |
上記の記述方法によって、複数の条件を処理できるようになります。必ずしも条件は一通りとは限らないため、複数の条件処理する方法についても覚えておきましょう。
複数の条件処理を行う場合には、「if else文」そして「if elsif 文」を使用します。
まずは「if else文」の記述例について確認していきましょう。
1 2 3 4 5 6 |
age = 25 if age < 20 puts "未成年" else puts "成人" end |
「if else文」は、その先の条件がひとつの場合に使用することができます。つまり、全ての条件が2つまでの場合に使用する記述方法となります。
一方で、「if elsif 文」は、条件が3つ以上の場合に使用する記述方法です。では下記の記述例を確認してみましょう。
1 2 3 4 5 6 7 8 |
age = 25 if age < 20 puts "未成年" elsif 20 == age puts "成人しました" else puts "すでに成人しています" end |
上記のプログラムを実行すると、結果は「すでに成人しています」という実行結果となります。
if文(条件分岐)は他のプログラミング言語でも使用できることは前述しましたね。しかしRubyならRubyならではの記述方法があり、それが「elsif」という記述方法となります。これは「else if」の略となり、Rubyの場合は「elsif」と省略することが可能です。
このような省略は各プログラミング言語によって少しづつ異なり、記述方法が違うとうまく処理できないため注意しましょう。
if文を使う際に注意することやよくあるミスとは?
if文はRubyを始め、様々なプログラミング言語で使用する処理方法です。うまく使い分けると便利なのですが、注意点もあることを理解しておきましょう。
それではここからは、if文を使う際に注意することやよくあるミスについて、ご紹介していきます。
条件の指定方法について
条件式の記述をよく間違える方が多く、注意が必要となります。例えば変数が等しい場合には「==」を使用するのですが、これが「=」となってしまう場合が多いです。
また、等しくない場合には「!=」と記述します。
以下または以上の条件を指定する場合にも注意が必要です。
- 以下の場合:「<=」
- 以上の場合:「>=」
上記のように記述をしますが、これが「=<」や「=>」のように、イコールを先に記述しないように注意しましょう。イコールは必ず右に来ます!
論理演算子の使用について
if文を応用的に使用する場合、論理演算子を使うことで複雑な条件指定ができるようになります。
例えば||や&&、orやandを使うことで、「かつ」「または」という表現が可能になります。しかしこの演算子にも優先順位が決まっているため、使用方法に気をつける必要があります。
例えば「or」よりも「||」、「and」よりも「&&」が優先されます。ちなみに「or」と「||」、「and」と「&&」は同じ意味になります。
nilについて理解しよう
プログラムにおいて、オブジェクトが存在しないことを表現する為の値として「nil」 があります。このnilの状態なのかどうかを判定する方法がif 文とよく一緒に利用されるため、合わせてご紹介します。
1 2 3 4 5 |
# 個人情報として名前と年齢が配列データとして存在 member_01 = { "name" => "webukatsu", "age" => "25" } if member_01["birth"].nil? puts "誕生日に関するデータは存在しません。" end |
上記のコードを実行すると、以下のようになります。
1 |
誕生日に関するデータは存在しません。 |
「nil?」というようにハテナを付けることで、nilの状態ですか?と判定することができます。この結果をもとにif文の処理を行う実例が多いため、覚えておきましょう。
まとめ
いかがでしたか?
今回の記事では、「if文の書き方とよくあるミス」についてご紹介しました。まずは基本的な記述方法を覚え、elsifを使った複数の条件分岐の処理方法を覚えてみてください。
プログラミングを効率よく学習する方法について解説