条件演算子(?:)
広告
条件演算子(三項演算子とも呼ばれます)は条件式の結果によって異なる値を返す演算子です。
条件式 ? 真の時の値 : 偽の時の値
条件演算子では条件式を評価し、真(true)だった場合には真の時の値を、偽(false)だった場合には偽の時の値を式全体の値ととして返します。
例えば次のように使用します。
result = 80 flag = result > 60 ? "合格" : "不合格"
上記では変数「result」が「60」より大きいかどうかで変数「flag」に格納される値を分けています。今回は条件式は真(true)ですので変数「flag」には「合格」が格納されます。
条件演算子は「if」文を使って次のように記述した場合と同じです。
result = 80 if result > 60 then flag = "合格" else flag = "不合格" end
注意点として条件演算子を使用する場合、空白を省略するとエラーになる場合がありますので注意して下さい。
○ 条件式 ? 真の時の値 : 偽の時の値 × 条件式? 真の時の値 : 偽の時の値
これは「?」が別の用途でも使用されるためです。
サンプルプログラム
では簡単なプログラムで確認して見ます。
#! ruby -Ku require "kconv" result = 80 flag = result > 60 ? "合格" : "不合格" print(Kconv.tosjis("得点"), result, "¥n") print(Kconv.tosjis(flag + "¥n")) result = 42 flag = result > 60 ? "合格" : "不合格" print(Kconv.tosjis("得点"), result, "¥n") print(Kconv.tosjis(flag + "¥n"))
上記のプログラムを「test10-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。
( Written by Tatsuo Ikura )