同じスクールの方のブログを見つけ、これならリファクタリングできるんじゃないかなと思ったので自分でもコードを書いてみました。
puts "(1~6)の間で整数を入力してください"
ary = [1,2,3,4,5,6]
msg1 = "ary = [1,2,3,4,5,6]の時\""
msg2 = "\"は、array.indexが\""
msg3 = "\"となる位置に格納されています"
msgerr = "入力範囲外です"
num = gets.to_i
# if文を使う
if 1 <= num && num <= 6
puts msg1 + num.to_s + msg2 + ary.index(num).to_s + msg3
else
puts msgerr
end
# case文も使える
case num
when 1,2,3,4,5,6
puts msg1 + num.to_s + msg2 + ary.index(num).to_s + msg3
else
puts msgerr
end
ポイント
- 同じ内容のメッセージは上の方にまとめて記述しました。
- if文は <= や => が使えるのでまとめられます。
- case文が視覚的にわかりやすそうなのでこっちも書いてみました。
- putsの部分をpやprintに変えるとちょっと違う結果が返ってきます。
この記事へのコメント