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

広告

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

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

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

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

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

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

print("num = ", num) if debug

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

if debug then
  print("num = ", num)
end

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

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

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

サンプルプログラム

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

test11-1.rb

#! ruby -Ku

num = 20
pref = "Tokyo"
debug = nil
print("num = ", num) if debug

debug = "on"
print("pref = ", pref) if debug

上記のプログラムを「test11-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。

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

( Written by Tatsuo Ikura )