ここで長いコードはw/cはbegin-endブロックとif文の両方の組み合わせです。 if文でどのように単純化できますか?Ruby文を簡略化
print "Put a number between 0 to 100: "
begin
numb = gets.chomp
numb = Integer(numb)
rescue
print "Please put a number not a text: "
retry
end
if numb < 0
puts "You can't enter a negative number!"
elsif numb <= 50
puts "#{numb} is between 0 and 50"
elsif numb <= 100
puts "#{numb} is between 51 and 100"
else
puts "#{numb} is above 100"
end
リファクタリング
私は多分代わりに 'case'を試してみてください、あなたはここで行うことができない何かを見ていない?しかし、それはの面でelse'場合'と同じ見られます行数。 – Surya
'retry'はあなたの' begin/end'ブロックをループに変えます。これはあなたの 'if' /' elsif'式が動作する方法とはまったく異なります。 – Stefan
コードのレビューと改善の要求がよりよく合うかもしれないので、この質問を議論の対象外とすることにしました。http://codereview.stackexchange.com/ –