Rubyのunless文の使い方を紹介します。
unless文の使い方
if文は条件が成立するときに処理をする構文なのに対して、unless文は条件式が成立しないときに処理をする構文です。
unless文の記述方法は以下のとおりです。
1 2 3 |
unless 条件式 then 条件式が成立しないときに実行する処理 end |
実際にunless文を使った例を見てみましょう。
1 2 3 4 5 |
x = 10 y = 5 unless y == 0 then puts x / y # 2 end |
この場合は条件式の「y==0」が成立しないのでunless内の処理が実行されます。
では以下の例ではどうでしょうか。
1 2 3 4 5 |
x = 10 y = 0 unless y == 0 then puts x / y end |
この場合は「y==0」が成立するのでunless内の処理が実行されません。
また、if文と同様にunless文でもelse節を記述することができます。
1 2 3 4 5 |
unless 条件式 then 条件式が成立しないときに実行する処理 else 条件式が成立するときに実行する処理 end |
しかし、unless文を使うときはelse節を使うことは避けるべきです。この理由はどの条件式のときにどちらの処理がされるのか直感的に理解しにくくなるからです。また同じ理由でunless文の条件式に「&&」や「!」を使うのも避けた方がいいです。その場合は素直にif文を使う方が好ましいです。
unless文は例外を投げるときなど特定の場面で使用されることが多いです。unless文を使う場合はプログラム内で使う場面を統一した方がいいでしょう。
後置unless文
if文と同様に処理の後ろにunless文を述することができます。
1 |
処理 unless 条件式 |
この場合、unless文の後ろにある条件式が成立しないときしか処理は実行されません。
以下のプログラムは後置unless文を使った場合の例です。
1 2 3 |
x = 10 y = 0 puts x / y unless y == 0 |
このように後置unless文を使えば簡潔にコードを記述することができます。