Menu
Coddy logo textTech

三項演算子

CoddyのRubyジャーニー「ロジックとフロー」セクションの一部。レッスン 40/56。

三項演算子は、値を返す if/else の1行ショートカットです。構文は condition ? value_if_true : value_if_false です。

age = 20
status = age >= 18 ? "Eligible" : "Not Eligible"
puts status   # 適格

次のように書くのと同じです:

status = if age >= 18
           "Eligible"
         else
           "Not Eligible"
         end

両方の分岐が短い値を返す場合は、三項演算子を使用します。どちらか一方の分岐で複数の expression が必要になる場合は、通常の if/else に戻します。三項演算子に詰め込みすぎると、読みにくくなります。

補間を含め、他の式の内部で直接使用できます。

count = 1
puts "#{count} item#{count == 1 ? "" : "s"}"   # 1 アイテム
count = 5
puts "#{count} item#{count == 1 ? "" : "s"}"   # 5 アイテム
challenge icon

チャレンジ

簡単

入力から整数 n を読み取ります。三項演算子(if/else ブロックは使用しない)を使って、次のように正確に出力します。

<n> is <label>

ここで、label は次のようになります。

  • n > 0 のときは positive
  • n < 0 のときは negative
  • n == 0 のときは zero

ヒント: 入れ子にした三項演算子 condition ? a : (other_condition ? b : c) を使ってください。

入力が 5 の場合、出力は 5 is positive です。0 の場合は 0 is zero です。

自分で試してみよう

n = gets.to_i

# TODO: 三項演算子を使ってラベルを組み立て、puts する
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン

自分で練習してみよう: Rubyオンラインコンパイラ