Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

Ruby

【Ruby】unless文の書き方と使い方の基本

Ruby unless文

開発環境

  • Ruby version: ruby 3.1.2

Rubyのunless文とは

Rubyのunless文とは、コンピュータプログラムで命令が実行される流れを定めた制御構造のうち、条件式の真偽によって処理を分岐させる条件分岐の構文です。

公式リファレンス:https://docs.ruby-lang.org/ja/latest/doc/spec=2fcontrol.html#unless

Rubyのunless文の書き方

Rubyのunless文の書き方を「unless文の基本形」「unless文の省略形」「unless修飾子」をご紹介します。

Rubyのunless文の基本形

Rubyのunless文の基本形は下記のように記述します。

unless文はif文と反対で、if文では条件式が「真」の場合にthen以下の処理を実行しますが、unless文では条件式が「偽」の場合にthen以下の処理を実行します。

補足ですが、unless文ではelsifを指定することはできないことや、elseがなくいずれの条件も成り立たなければnilを返してくれるということも覚えておきましょう。

Rubyのunless文の省略形

Rubyのunless文はthenを省略することができます。

実際の開発ではthenを省略して書くことがほとんどなので、省略形で覚えるのがおすすめです。

Rubyのunless修飾子

Rubyのunless文は1行で書くことも可能です。

右辺の条件式が成立しない時に左辺の処理を実行し、条件式が成立しなければnilを返します。

unless装飾子は実行する処理を先に記述しているだけですが、unless装飾子の記述方法は下記の処理内容と同様です。

分かりやすいコーディングを意識した場合、先に記述することで何を実行しようとしているのかが分かり易くなる場合があるため、たまに使用することがあります。

Rubyのunless文の使い方

Rubyのunless文のよくあるパターンをサンプルコードを用いて使い方の解説をしていきます。

unless文の単一条件パターン

even?は偶数の場合にtrueを返してくれますが、unlessはfalseの場合に実行されるため、偶数ではない場合に処理を実行するとなります。

上記をif文で書き換えると下記になります。

odd?は奇数の場合にtrueを返してくれるため、奇数である場合に処理を実行するとなります。

また、演算子式のnotを使用して書き換えると下記になります。

「!」を条件式の前につけることにより、条件式がtrueである時にfalse、条件式がfalseである時にtrueを返します。

だたし、否定演算子を使うのであれば、unless文のほうが直感的に見やすいコードになります。

unless文の複数条件パターン

演算子式の「&&」は「and」という意味のため、条件式がどちらも「true」の場合に「true」を返してくれるため、偶数かつ5未満ではない場合に実行されます。

上記をif文で書き換えると下記になります。

上記は奇数かつ5以上の場合に実行されます。

ただし、unless文は直感的に書くことで可読性を向上させることが多いため、演算子式のandという意味の「&&」や、orという意味の「||」などを組み合わせた複数条件は使わないほうが良いです。

おわりに

Rubyのunless文の使い方を解説してきました。

Rubyの条件分岐はif文を使用することが多いかと思いますが、unless文と使い分けることでより見やすく可読性を向上させることができます。

また、Ruby on Railsの機能である真偽判定「nil?/empty?/blank?/present?」と組み合わせて直感的なプログラムを書くことができますので、是非、参考にしてください。

Check


プログラミングが無料で学べるYouTubeチャンネルを配信中!

RubyやPython、PHPやReactなど様々なプログラミング言語のチュートリアル動画が充実!

チャンネル登録はこちら

-Ruby