三項演算子
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 アイテムチャレンジ
簡単入力から整数 n を読み取ります。三項演算子(if/else ブロックは使用しない)を使って、次のように正確に出力します。
<n> is <label>ここで、label は次のようになります。
n > 0のときはpositiven < 0のときはnegativen == 0のときはzero
ヒント: 入れ子にした三項演算子 condition ? a : (other_condition ? b : c) を使ってください。
入力が 5 の場合、出力は 5 is positive です。0 の場合は 0 is zero です。
自分で試してみよう
n = gets.to_i
# TODO: 三項演算子を使ってラベルを組み立て、puts する
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
ロジックとフローのすべてのレッスン
自分で練習してみよう: Rubyオンラインコンパイラ