unless文を使った条件分岐
if 文では条件式が「真」の場合にそのあとの処理を実行しますが、 unless 文では逆に条件式が「偽」の場合にそのあとの処理を実行します。ここでは Ruby で unless 文を使った条件分岐を記述する方法について解説します。
(Last modified: )
unless文を使った条件分岐
if
文と同じく条件によって処理を分けたい場合に使用するのが unless
文です。 unless
文の書式は次のようになっています。
if 条件式 then 条件式が真の時に実行する処理1 条件式が真の時に実行する処理2 ... end
if
文では条件式が真かどうかで処理を分けますが似た制御構造を持つものとしてunless
文があります。unless
文は条件式が偽の場合の処理を記述するのに使われます。書式は次の通りです。
unless 条件式 then 条件式が偽の時に実行する処理 end
条件式が「偽」だった場合は then
から end
までの間に書かれた処理を上から順に実行します。条件式が「真」だった場合は end
の次へ処理が移ります。このように unless
文を使用することで、条件式が「偽」だった場合だけ特定の処理を実行するといったことが可能になります。
また if
文と同じく else
節も使用できます。
unless 条件式 then 条件式が偽の時に実行する処理 else 条件式が真の時に実行する処理 end
条件式を評価し、条件式が「偽」だった場合に then
から else
までの処理を実行し、条件式が「真」だった場合に else
から end
までの処理を実行します。
elsif
節は unless
文にはありません。また unless...else...end
に相当する処理を行いたい場合は if
文を使って次のように記述できますのであまり使用されることはありません。
if !条件式 then 条件式が偽の時に実行する処理 else 条件式が真の時に実行する処理 end
unless
文は条件式に否定演算子「!」を付け加えることで if
文で書き換えることができますが、条件式の記述をする時に「条件が偽ならば...をする」といった記述をした方が意味が分かりやすい場合などに利用できます。
例えば次のように使用します。
old = 40 unless old < 20 then print("20歳以上ですのでご利用できます") end
これは if
文で次のように記述できます。
old = 40 if old >= 20 then print("20歳以上ですのでご利用できます") end
また次のようにも記述できます。
old = 40 if !(old < 20) then print("20歳以上ですのでご利用できます") end
では簡単なプログラムで確認してみます。
# encoding: UTF-8 old = 40 puts("年齢は " + old.to_s + " です") unless old < 20 then puts("20歳以上ですのでご利用できます") else puts("20歳未満の方はご利用できません") end puts() old = 18 puts("年齢は " + old.to_s + " です") unless old < 20 then puts("20歳以上ですのでご利用できます") else puts("20歳未満の方はご利用できません") end
下記のように実行して下さい。
-- --
Ruby で unless 文を使った条件分岐を記述する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。