式修飾子(if修飾子、unless修飾子)を使った条件分岐

if 文や unless 文を使用することで繰り返し処理を行うことができますが、似た構文として式修飾子が用意されています。ここでは Ruby で式修飾子を使った条件分岐の記述方法について解説します。

(2021 年 06 月 30 日公開 / 2022 年 10 月 20 日更新)

if文を使った条件分岐

if 文を使うことで条件に応じて行う処理を実行することが出来ますが、次のような記述方法も可能です。

真の時に実行する式 if 条件式

このような構文を if 修飾子といいます。上記では条件式が真の場合に if の左辺の式を実行します。

これは if 文で次のように記述した場合と同じです。

if 条件式 then
  真の時に実行する式
end

if 修飾子は実行する処理を先に記述しているだけです。ただ、先に記述することで何を実行しようとしているのかが分かり易くなる場合があります。また簡潔に記述することもできます。例えば次のようにデバック用の出力を行う場合を考えてみます。

puts("num = " + num.to_s) if debug

変数「debug」が「真」の場合だけ変数「num」の値を出力しています。これは次のように if 文を使って同じ事が記述できますが、より簡潔に記述でき何をしようとしているのかも明確に出来ます。

if debug then
  puts("num = " + num.to_s)
end

なお if 修飾子と同じように unless 修飾子も用意されています。

偽の時に実行する式 unless 条件式

unless 修飾子は条件式が偽の場合に左辺の式を実行します。

サンプルコード

では簡単なプログラムで確認してみます。

# encoding: UTF-8

point = 80
puts("得点は " + point.to_s + " です")
puts("合格です") if point > 70

point = 58
puts("得点は " + point.to_s + " です")
puts("合格です") if point > 70

下記のように実行して下さい。

式修飾子(if修飾子、unless修飾子)

-- --

Ruby で式修飾子を使った条件分岐の記述方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。