こんにちは! エンジニアのヤマギシです。
Rubyにも条件によって処理内容を分岐する機能があります。
こちらの記事では、
・Rubyでif文を使うときの書き方
・複数条件で分岐処理を行う方法
などの条件によって処理を分ける方法について学んでいきたいと思います。
そもそもif文とは
Rubyに限らずどのプログラミング言語でも同様にif文というのがあります。
if文というのはもし○○ならば△△を実行といったように
条件が適用されたら処理を実行せよと条件に応じて処理を実行するプログラムです。
プログラムって聞くと「なんか難しそう」と感じるかもしれないですけど、
決してそんなことはないんです。
わたしたち人間だって普段、生きている中で判断を迫られるときだってあったはずです。
天気を例にすると、
「もし曇ってたら映画を観よう」
といったように場合によって行動を変えてますよね。
このようにプログラムだって同じです。
これからプログラミング言語の一つRuby条件分岐についてわかりやすく解説していきます!
Ruby ifはこれからRubyでコードを書いていく上で
必須と言っていい構文のひとつなのでしっかりついてきてくださいね。
if文を使ってみよう!
if文の書き方について解説していきます。
Rubyのif文では
if 条件 then 処理 end
という構造となっています。
意味としては条件に合致したら処理をするということ。
で、合致しなかったらどうするの?
という疑問が生まれますが、何も処理しないんです。
ただ、気を付けるべき点はendを忘れてエラーになってしまうこと。
エラー潰しのためにもend忘れには要注意です。
ちなみにifの後の『then』は省略可能なので、ifを書いたらすぐにendを書くことをオススメします!
さて、基本的な構造がわかったところで2つの例文を交えながら、まず自動販売機を例に数値を比較するプログラムをご紹介していきます。
なお、ソースコード解説はコード横にコメントという方法で書いてあります。
Rubyで1行コメントを使う際は#の後に書くので併せて覚えてくださいね。
数値を比較する
まず、if文で数値を比較する方法について見ていきましょう。
以下のサンプルコードでは、water(変数)に100を代入して、その値を比較する例について解説しています。
数値比較の定番例なので、そのまま覚えちゃう勢いで見ていきましょう!
water = 100 #waterという変数に100を代入 if water > 85 #もしwaterが85より大きかったら puts "購入ありがとうございます。" #購入ありがとうございます。と出力 end
if 条件の部分の『>』という大なり記号
こちらは比較演算子と言って、waterが85よる大きい場合、真になり処理が行われます。
条件によって処理を分けたいときは良く使います。
詳しくはこちらの記事をご参照ください。
putsというメソッドは文字列を出力します。
そして文字列と認識させるためには
ダブルクォーテーション ( ” )やシングルクォーテーション ( ‘ )
で文字列を囲みます。
文字列を比較する
さて、続いては文字列を比較するif文について解説していきます。
文字列は『”』もしくは『’』で囲むんでしたね。
さぁ、見てみましょう!
pet = "犬" #petという変数に犬を代入 if pet == “犬” #もしpetが犬だったら puts "ワンワン" #ワンワンと出力 end
ここでは新たに『==』という演算子が出てきました。
意味としては比較対象の文字列が同じであるかどうかです。
注意すべき点は、『=』のみだと代入という意味になってしまうので、
比較する際は必ず両者を『==』で比較してください!
if~else文の使い方
最後に条件に合致しない場合の処理について見ていきましょう。
今までは条件が適用されたときの処理しかしていません。
ただ、プログラムの世界では毎回条件に合致するなんてことはないんです。
だったら分岐処理はいらないですもんね。
ということで最後に条件に合致しない際の処理について書き方を見ていきましょう!
score = 60 if score > 59 #もしscoreが59より大きかったら puts "おめでとう!合格です!" # おめでとう!合格です!と表示 elsif score == 60 #もしscoreが60だったら puts "及第点で合格です!" #及第点で合格です!と表示 else puts "残念ながら不合格です。" #残念ながら不合格です。と表示 end
こちらでは、新たに
elsif
else
という式が出てきました。
どんな役割を担っているかというと、
elsifは、ifで定義した条件式が偽だった場合、さらに条件式を加えて分岐処理をします。
注意点としては、elseifと書かないこと。
これもまたエラーの原因となってしまいますので
elsif 条件式
という書式を必ず守ってください。
そしてelseは条件式の全てが偽だった場合の処理として機能します。
両者についてまとめると、
- elsifは、最初のifで書いた条件式が偽だった場合に新たに条件を加え処理
- elseは、全ての条件が偽だった場合に処理
といった違いがありますので、併せて覚えておきましょう!
まとめ
いかがでしたでしょうか?
今回はif文の基本的な書き方について学んできました。
こちらの記事で紹介した内容はif文を書く上で基礎中の基礎の部分であり、
よく使う構文なので是非この機会にマスターしましょう。