条件演算子(?:)を使った条件分岐

条件演算子(三項演算子とも呼ばれます)は条件式の結果によって異なる値を返す演算子です。ここでは 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
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。