我目前在學習ruby,而且我已經陷入了這個問題:紅寶石無限循環
寫一個聾人祖母程序。無論你對奶奶說什麼(無論你輸入什麼內容),她都應該回應HUH? SPEAK UP,SONNY!,除非你喊出來(輸入所有大寫字母)。如果你大喊,她會聽到你的回聲,不,從1938年起!爲了讓你的節目真正可信,每次奶奶都會有不同的年份;也許任何一年在1930年和1950年之間的任何一年。你不能停止與奶奶說話,直到你喊BYE。
這是我試過的代碼:
puts "Say something to Grandma!"
something = gets.chomp
while something != "BYE"
if something == something.upcase
puts "NO, NOT SINCE 19" + (rand(30..50)).to_s + "!"
else
puts "HUH? SPEAK UP SONNY!"
end
end
每當我執行此,if和else字符串只是去一個無限循環。我在這裏做錯了什麼?
我不會說紅寶石,但你''''一次*然後*開始'while'。這必然會導致無限循環,因爲'something'永遠不會改變。你可能不得不進入'while'語句,所以每次都會得到。另外'chomp'是我用腳本語言見過的最酷的命令。 –
@Pekka:'chomp' - 掐掉換行符。 'gets' - 這個獲得用戶輸入。備查。 :) –
另外,字符串插值。 –