unless文(Ruby)

2024/01/26に公開

はじめに

今回は条件分岐の一つであるunless文について説明します。
こちらも使う可能性のある表現なので、しっかり見ていきましょう!

unless文

Rubyにはifと反対の意味を持つunlessがあります。
何が反対なのかというと、条件式が偽の場合だけ処理を実行する点です。
if文で否定の条件を書いているときは、unless文に書き換えられます。
たとえば次のようなコードがあったとします。

status = 'error'
 if status != 'ok'
   '何か異常があります'
 end
 #=> "何か異常があります"

これはunlessを使って次のように書き換えることができます。

status = 'error'
unless status == 'ok'
  '何か異常があります'
end
#=> "何か異常があります"

elseを使って条件が偽でなかった場合(つまり真だった場合)の処理を書くこともできます。

 status = 'ok'
 unless status == 'ok'
   '何か異常があります'
 else
   '正常です'
 end
 #=> "正常です"

if+否定条件は、unless+肯定条件に書き直すことができるものの、必ず書き直さなければいけないわけではありません。
if文のほうが読みやすいと思った場合は、if+否定条件のままにしておいても大丈夫です。

unless使う時は頭では、否定して考えるので、ややこしくなる場合もありますが、
ぱっと見unlessだと気づくので、使い分けるのが大事ですね!

さいごに

今回はunless文について説明しました。
このように基礎から派生した学習から応用も身に付くので、しっかり見ていきます!
次回はcase文です!

参考文献

プロを目指す人のためのRuby入門 改訂2版

Discussion