如果type是character我想放错误

时间:2013-09-25 11:51:51

标签: ruby types char sum

puts "Let's sum many numbers"

sum = 0
num = 0
while(num != 'x')
  puts "Press a number and then Enter if you exit press 'x'"
  num = gets.chomp
  if num != 'x'
    num = num.to_i 
    print "#{sum} + #{num} = "
    sum += num
    puts "#{sum}"
  elsif num == 'x'
    puts "Total sum is #{sum}"
    break
  else 
    puts "error!"
  end
 end

我想让代码显示错误如果用户按下除“x”之外的字符。 我应该怎么做?

1 个答案:

答案 0 :(得分:-1)

将您的第一个if更改为检查输入是否为数字的条件,例如

if num =~ /\A[0..9]+\z/   # or /\A\d+\z/

您的代码目前的方式,除了'x'之外的所有字符串都被视为数字 - 值为0,以防它们不是真正的数字:

'foobar'.to_i  # => 0