对于Ruby来说,我是一个真正的Newb,但我一直在使用代码学院网站学习它。我开始超出我应该做的特定任务的指导范围,但令我惊讶的是我输入以下代码时出错:
print "please type in an integer for x:"
x = gets.to_i
print "please type in an integer for y:"
y = gets.to_i
if "x" < "y"
puts "#{x} is less than #{y}"
elsif "x" > "y"
puts "#{x} is greater than #{y}"
else
puts "#{x} is equal to #{y}"
end
这是一个非常简单的代码,但最终结果应该是这样做的:
"x" < "y" will report "x is less than y"
"x" > "y" will report "x is greater than y"
"x" = "y" will report "x is equal to y"
较小和较大的工作,但它无法计算x和y是否相同,而只是报告&#34; x是lees而不是y&#34;
我不确定它是否是代码学院网站的错误,或者它是否是我做错的事情。任何帮助将不胜感激。
答案 0 :(得分:2)
写如下:
if x < y
puts "#{x} is less than #{y}"
elsif x > y
puts "#{x} is greater than #{y}"
else
puts "#{x} is equal to #{y}"
end
"x"
创建一个新字符串,不作为您从控制台获取的数字。但是当你写"#{x}"
时,它会给出数字,但是使用插值以字符串格式。
当您编写"x" > "y"
时,您正在检查/测试lexicographical ordering的字符串文字'x'和'y',但是x > y
是两个数字的比较使用gets.to_i
从控制台获取。