我目前在学习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' - 这个获得用户输入。备查。 :) –
另外,字符串插值。 –