我是Ruby的初学者,练习循环和if语句。
我的课程工作有点偏离轨道,并尝试运行以下代码:
puts("Enter your age!")
age = gets.to_i
again = "Try again!"
while age <= 100
if age == 0
puts("You are very very young. " + again)
age = gets.to_i
elsif age >= 1 && age <= 5
puts("You are quite small. Though you are breathing, you may not understand this. " + again)
age = gets.to_i
else
puts("You are a capable of reading " + again)
age = gets.to_i
end
end
puts("Your age," + age + " is a good one")
当我运行它时,系统会提示我输入年龄。 如果我输入的年龄&lt; = 100,一切都按照代码运作。 如果没有,我收到错误:
rehearsal.rb:20:
+': no implicit conversion of Fixnum into String (TypeError) from rehearsal.rb:20:in
&#39;
其他StackOverflow答案(解决此错误消息)我读到的建议错误是误用了&#34; to_i&#34;方法。我确保包含它,我的错误仍在这里。
我的错误在哪里?
答案 0 :(得分:2)
在Ruby中,添加字符串的+
方法不适用于整数。在您的示例中,age
变量是一个整数。如果您习惯使用JavaScript,这似乎有点奇怪。
您需要使用string interpolation
puts("Your age, #{age} is a good one")
这很有效。