目次
開発環境
- Ruby version: ruby 3.1.2
Rubyのif文とは
Rubyのif文とは、コンピュータプログラムで命令が実行される流れを定めた制御構造のうち、条件式の真偽によって処理を分岐させる条件分岐の構文です。
公式リファレンス:https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#if
Rubyのif文の書き方
Rubyのif文の書き方を「if文の基本形」「if文の省略形」「if修飾子」をご紹介します。
Rubyのif文の基本形
1 2 3 4 5 6 7 | if 条件式1 then 条件式1がtureの場合に行う処理 elsif 条件式2 then 条件式1がfalseで条件式2がtureの場合に行う処理 else 条件式1にも条件式2にも当てはまらない場合に行う処理 end |
ifの条件式を判定し、結果がtrueである時にthen以下の処理を行います。
また、ifの条件式がfalseであればelsifの条件式を判定し、結果がtrueである時then以下の処理を行いますが、ifやelsifの条件式がいずれもfalseであれば、elseの処理を行います。
補足ですが、elsifは複数指定できるということや、elseがなくいずれの条件も成り立たなければnilを返してくれるということも覚えておきましょう。
Rubyのif文の省略形
1 2 3 4 5 6 7 | if 条件式1 条件式1がtureの場合に行う処理 elsif 条件式2 条件式1がfalseで条件式2がtureの場合に行う処理 else 条件式1にも条件式2にも当てはまらない場合に行う処理 end |
Rubyのif文はthenを省略することができます。
実際の開発ではthenを省略して書くことがほとんどなので、省略形で覚えるのがおすすめです。
Rubyのif修飾子
1 | 処理 if 条件式 |
Rubyのif文は1行で書くことも可能です。
if装飾子は実行する処理を先に記述しているだけですが、if装飾子の記述方法は下記の処理内容と同様です。
1 2 3 | if 条件式 then 条件式がtureの場合に行う処理 end |
分かりやすいコーディングを意識した場合、先に記述することで何を実行しようとしているのかが分かり易くなる場合があるため、たまに使用することがあります。
Rubyのif文の使い方
Rubyのif文のよくあるパターンのサンプルコードで使い方の解説をしていきます。
条件式で真偽値を判定する場合、比較演算子や論理演算子などが使用されることが主なため、サンプルコードをみながら覚えていくと良いでしょう。
公式リファレンス:https://docs.ruby-lang.org/ja/latest/doc/spec=2foperator.html
if文の単一条件パターン
1 2 3 4 5 6 7 | if 5 < 10 puts "5は10未満です。" end if 5 > 10 puts "5は10以上です。" end |
一つ目の5は10未満でtrueのため実行されますが、二つ目の5は10以上ではないためfalseで実行されません。
if文の複数条件パターン
1 2 3 4 5 6 7 8 9 10 11 12 13 | num = rand(10) if num >= 10 puts "numは10以上です。" elsif num <= 5 puts "numは5以下です。" elsif num == 6 puts "numは6です。" elsif num == 7 || num == 8 puts "numは7、または8です。" else puts "numは9です。" end |
擬似乱数を生成してくれるrandメソッドで10までの数字がランダムに出力されます。
そのランダムな数字をelsifを複数回使用し、複数条件で条件分岐することにより、ランダムに出力される数字でも適切に処理をするようなパターンです。
if文をネストさせるパターン
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | num = rand(10) if num >= 5 if num % 2 == 0 puts "numは5以上の偶数です。" else puts "numは5以上の奇数です。" end else if num % 2 == 0 puts "numは5未満の偶数です。" else puts "numは5未満の奇数です。" end end |
if文の中にif文を入れることを「ネスト」と言います。
numが5以上だった場合に偶数か奇数を判断するための処理が行われますが、numが5未満だった場合も偶数か奇数を判断するための処理を記述しています。
同じ結果を求める処理を記述した場合、下記も同様の結果が得られます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | num = rand(10) if num % 2 == 0 if num >= 5 puts "numは5以上の偶数です。" else puts "numは5未満の偶数です。" end else if num >= 5 puts "numは5以上の奇数です。" else puts "numは5未満の奇数です。" end end |
if文はどのように処理をしたいかを順序だてて考えることにより、効率よく処理をすることができます。
おわりに
Rubyのif文の使い方を解説してきました。
if文はRubyに限らず、様々な言語で使用される基本的な条件分岐の構文ですが、大切なのはどのようなときに処理をしたいかを順序だてて考えていくことです。
プログラミングにおいてif文は使用頻度がかなり高いため、是非、参考にしてください。