好的,我正在尝试为祖母写一个红宝石模拟。我不能让循环按照我想要的方式工作。我希望奶奶回复
“OH,这让我回到了(随机年份)......”
当你全部回答她时,我也希望她回复
“你说什么????”
当你不使用全部大写时。我可以让每个人分开工作,但我似乎无法用她的疯狂反应制造一个连续循环的奶奶。这是代码:
puts 'HELLO SONNY! WHAT\'S NEW IN THE WHO\'S IT WHAT\'S IT?'
response = gets.chomp
while response == response.upcase
puts 'OH, THAT REMINDS ME OF BACK IN ' + (rand(50) + 1905).to_s + '...'
response = gets.chomp
end
while response != response.upcase
puts 'WHAT\'D YOU SAY????'
response = gets.chomp
end
有什么想法吗?
答案 0 :(得分:7)
问题是,一旦退出第一个while循环,你就永远不会返回它。尝试这样的事情:
while true
response = gets.strip
if response == response.upcase
puts msg1
else
puts msg2
end
end
这将永远运行,直到你决定用Ctrl-C杀死虚拟奶奶。
答案 1 :(得分:0)
这个程序有效,虽然我是菜鸟,所以它可能不是最好的方式。另外我的数学更有创意,然后实际,其他人更好。 :)
puts 'Talk to your grandma!'
while true
say = gets.chomp
if say == say.downcase
puts 'WHAT DID YOU SAY? SPEAK UP!'
else say == say.upcase
puts "NO HONEY, NOT SINCE 19" + (rand(90) + 10).to_s
end
break if say == 'bye'.upcase
end