【问题标题】:Gets.chomp input comparison returning an errorGets.chomp 输入比较返回错误
【发布时间】:2019-01-03 12:19:09
【问题描述】:

我正在使用红宝石

错误:整数与字符串的比较失败(ArgumentError)

puts "Age: "
    age = gets.chomp
    if 0 < age < 130

我希望程序允许用户输入 0(不包括)和 130(包括)之间的所有数字。怎么做?

【问题讨论】:

  • 您会收到来自:stdin 的字符串。您需要在比较之前将其转换为整数:0 &lt; age.to_i &lt; 130.

标签: ruby numbers integer argument-error


【解决方案1】:

输入是一个字符串。试试这样的

puts "Age: "
user_input = gets.chomp
begin
  age = Integer(user_input)
  # your code
rescue ArgumentError
  puts "Age must be an integer"
end

【讨论】:

  • to_i 上使用Integer() 很好,因为to_i 对于非数字字符串将返回零。
  • 什么(开始)救援(结束)代表什么?
  • 但是如何只允许用户输入 0 到 130 之间的整数?
  • 和你做的一样:)
  • 这次你的年龄是一个整数。哦,只是,你不能做&lt; age &lt;。你需要类似if age &gt;= 0 &amp;&amp; age &lt;= 130
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 2015-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多