Ruby Control Flow =(等于)和if

时间:2014-03-05 17:41:38

标签: ruby-on-rails ruby equals

对于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;

我不确定它是否是代码学院网站的错误,或者它是否是我做错的事情。任何帮助将不胜感激。

1 个答案:

答案 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从控制台获取。