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