式修飾子(while修飾子、unitl修飾子)
「while」文を使用することで、条件が真の間繰り返し処理を実行させることが出来ますが、次のような記述方法も可能です。
真の時に実行する式 while 条件式
このような構文を「while」修飾子といいます。上記では条件式が真の間「while」の左辺の式を繰り返し実行します。
これは「while」文で次のように記述した場合と同じです。
while 条件式 do 真の時に実行する式 end
「while」修飾子は実行する処理を先に記述しているだけです。ただ「if修飾子」の場合と異なり、あまり使い道は無いように個人的には思っています。例えば次のように使用してみます。
num = 2 num *= 2 while num < 1000
2の累乗を計算していき1000を超えたらストップします。ただ下記のように「while」文を使った場合と比較して「while」修飾子の方が優れているのはよりコンパクトに記述できるという点だけのような気がします。
num = 2 while num < 1000 do num *= 2 end
なお「while」修飾子と同じように「until」修飾子も用意されています。
偽の時に実行する式 until 条件式
「until」修飾子は条件式が偽の間「until」の左辺の式を繰り返し実行します。
サンプルプログラム
では簡単なプログラムで確認して見ます。
#! ruby -Ku num = 2 print("[start]¥n") num *= 2 while num < 1000 print("num = ", num, "¥n"); print("[end]¥n")
上記のプログラムを「test12-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。
( Written by Tatsuo Ikura )