条件演算子(?:)

広告

条件演算子(三項演算子とも呼ばれます)は条件式の結果によって異なる値を返す演算子です。

条件式 ? 真の時の値 : 偽の時の値

条件演算子では条件式を評価し、真(true)だった場合には真の時の値を、偽(false)だった場合には偽の時の値を式全体の値ととして返します。

例えば次のように使用します。

result = 80
flag = result > 60 ? "合格" : "不合格"

上記では変数「result」が「60」より大きいかどうかで変数「flag」に格納される値を分けています。今回は条件式は真(true)ですので変数「flag」には「合格」が格納されます。

条件演算子は「if」文を使って次のように記述した場合と同じです。

result = 80

if result > 60 then
  flag = "合格"
else
  flag = "不合格"
end

注意点として条件演算子を使用する場合、空白を省略するとエラーになる場合がありますので注意して下さい。

○  条件式 ? 真の時の値 : 偽の時の値
×  条件式? 真の時の値 : 偽の時の値

これは「?」が別の用途でも使用されるためです。

サンプルプログラム

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

test10-1.rb

#! 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 )