条件演算子(?:)を使った条件分岐
条件演算子(三項演算子とも呼ばれます)は条件式の結果によって異なる値を返す演算子です。ここでは Ruby で条件演算子を使った条件分岐を行う方法について解説します。
(Last modified: )
条件演算子(?:)を使った条件分岐
条件演算子は条件式の結果によって異なる値を返します。次のように記述します。
条件式 ? 真の時の値 : 偽の時の値
条件演算子では条件式を評価し、「真」の場合には真の時の値を、「偽」の場合には偽の時の値を式全体の値として返します。
例えば次のように使用します。
result = 80 flag = result > 60 ? "合格" : "不合格"
上記では変数「result」が「60」より大きいかどうかで変数「flag」に格納される値を分けています。今回は条件式は「真」ですので変数「flag」には「合格」が格納されます。
条件演算子は if
文を使って次のように記述した場合と同じです。
result = 80 if result > 60 then flag = "合格" else flag = "不合格" end
注意点として条件演算子を使用する場合、空白を省略するとエラーになる場合がありますので注意して下さい。
○ 条件式 ? 真の時の値 : 偽の時の値 × 条件式? 真の時の値 : 偽の時の値
これは「?」が別の用途でも使用されるためです。
サンプルコード
では簡単なプログラムで確認してみます。
# encoding: UTF-8 point = 80 result = point > 60 ? "合格" : "不合格" puts("得点" + point.to_s) puts("結果は" + result + "です") point = 56 result = point > 60 ? "合格" : "不合格" puts("得点" + point.to_s) puts("結果は" + result + "です")
下記のように実行して下さい。
-- --
Ruby で条件演算子を使った条件分岐を行う方法について解説しました。
( Written by Tatsuo Ikura )
Profile
著者 / TATSUO IKURA
プログラミングや開発環境構築の解説サイトを運営しています。