条件分岐を1行にまとめる
目次
if文のみ
後置ifをつかう。
式 if 条件
event_name = 'エイト' # if 条件 式 end if event_name == 'エイト' puts "スイープ種目です。" end # 後置ifをつかう。 puts "スイープ種目です。" if event_name == 'エイト'
if文 else節が1つのみの場合
else節が1つしかなく、式が単純な場合は
条件 ? 式1 : 式2
がつかえる。
event_name = 'エイト' # if else end if event_name == 'クォドルプル' puts "スカル種目です。" else puts "スイープ種目です。" end # 条件 ? 式1 : 式2 # 条件が偽の場合は : 以降の式が実行される。 event_name == 'クォドルプル' ? puts("スカル種目です。") : puts("スイープ種目です。")
ちなみに上の場合puts "スカル種目です。"
と書くとエラーになる。
エラーの例
event_name = 'エイト' event_name == 'クォドルプル' ? puts "スカル種目です。" : puts "スイープ種目です。" # syntax errorになる
puts
の引数を()
で囲むか、puts式全体を()
で囲む必要がある。
event_name = 'エイト' event_name == 'クォドルプル' ? (puts "スカル種目です。") : (puts "スイープ種目です。") # スイープ種目です。 と表示される。
case文のwhen節を1行にまとめる
when節にthen
を明記すると1行にまとめることができる。
thenなし、改行あり
event_name = 'エイト' case event_name when 'クォドルプル' puts "スカル種目です。" when 'エイト' puts "スイープ種目です。" end
thenあり、改行なし
event_name = 'エイト' case event_name when 'クォドルプル' then puts "スカル種目です。" when 'エイト' then puts "スイープ種目です。" end # thenなし、改行なしはエラーになる。
今回の動作確認環境
Ruby 2.5.1p57