【Ruby入門】Rubyで条件分岐:if文

今回は、Rubyでの条件分岐の書き方について解説します。

基本的なif 文の文法

基本的なif 文の書式は以下のようになっています。

if (条件式1) then #thenは省略可能
   (条件式1が真のときの処理)
elsif (条件式2) then
   (条件式2が真のときの処理)
else
   (条件式1・2が偽のときの処理)
end

if の条件式1が”真”であるとき、then 以下の処理が実行されます。

条件式1が”偽”だった場合、かつ、elsif の条件式2が"真"だった場合は、elsif のthen 以下の処理が実行されます。
※else if ではなくelsif です。

また、条件式1・2がどちらも"偽"だった場合、else 以下の処理が実行されます。

条件式は上から順に評価されます。条件式が”真”となった時点で処理が実行され、その後の条件式は評価されないので注意しましょう。

また、then  は省略ができます。

実際にコードを書いてみましょう。

drink = "milk"

if drink == "coffee" then 
   puts "UX COFFEE"
elsif drink == "milk" then
   puts "UX MILK"
else
   puts "UX nothing"
end

上記のコードの例では、上から条件式を評価していき、条件式を満たすdrink == "milk" 以下の処理、puts "UX MILK" が実行されます。

UX MILK

if 修飾子

条件式や処理の部分が非常に短いとき、if 文の基本的な書式では、長ったらしくみえてしまいスマートではない書き方になることがあります。

そんなときは、以下のようにif 文を書くことができます。

(条件式が"真"であるときの処理) if (条件式)

このように簡潔な書き方ができるので、是非活用してみてください。

条件式と処理の式の順番が逆になっていることに注意してください。

実際にコードを書いてみましょう。

age = 20
puts "18歳以上です" if age >= 18

実行結果は以下のようになります。

18歳以上です

unless

unless 文では、if 文とは逆に、条件式が”偽”であるときに処理が実行される構造になっています。

unless 文の書式は、if 文とほとんど変わりません。

unless (条件式) then
  (条件式が"偽"であるときの処理)
end

unless 文では、elseで続けることはできますが、elsif は使うことができません。

実際にコードを書いてみましょう。

var = "UI"

unless var == "UX" then
   puts "Unknown MILK"
end

実行結果は以下のようになります。

Unknown MILK

unless 文はコードをわかりづらくすることが多々あるので、unless 文を書くのであれば、if 文を書いてしまったほうが良いでしょう。



イベント

2017/12/05(火)
Design Thinking Square