2014-03-05 17 views
1

對於Ruby,我是一個真正的Newb,但我一直在使用代碼學院網站學習它。我要從我應該做的具體任務外引去,只讓我吃驚我鍵入下面的代碼時,得到了一個錯誤:Ruby控制流=(等於),如果

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是相同的,而不是僅僅報告「x是酒糟比Y」

我不知道,如果它不能計算這是Code Academy網站的錯誤,或者是我做錯了。任何幫助將不勝感激。如下

+3

你不需要在if子句中引用變量名。 –

回答

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控制檯拿了兩個數字的比較。

+0

啊,非常感謝你。我知道我在做一些像老年人一樣的事情,忘記了Ruby的基本規則。我讚揚你,先​​生。我也會刪除這個問題,因爲這是一個愚蠢的錯誤。 – LewisHarris

+0

好的抱歉。我希望自己在像這樣的在線論壇上更好,但不幸的是,我不像其他人那樣認真對待這種事情。是的,我正在談論你。 – LewisHarris

+0

@LewisHarris你是什麼意思*是我在說你*? –