与奶奶的Ruby循环

时间:2010-10-06 22:52:53

标签: ruby loops while-loop

好的,我正在尝试为祖母写一个红宝石模拟。我不能让循环按照我想要的方式工作。我希望奶奶回复

  

“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

有什么想法吗?

2 个答案:

答案 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