Ruby While Loop

时间:2016-08-08 13:40:30

标签: ruby

我在Ruby中创建了一个程序:

print "Grandma: Say something: "

while user_input = gets.chomp #loop while getting user input
  case user_input

  when user_input.upcase
    puts "NO, NOT SINCE! " + rand(1930..1950).to_s
    break

  when user_input = 'Bye'
    puts "Good bye!"
    break

  else
    puts "HUH?!  SPEAK UP, NOW!"
    print "Grandma: Say something: "
  end

end

这将只是获取用户输入,当用户输入UPcase或Bye时,它将退出程序。

现在我的问题是我需要更改这个程序,以便当我连续三次说Bye时,它将是唯一一次退出程序而不是一次。如何修改我的程序才能做到这一点?

1 个答案:

答案 0 :(得分:0)

你需要一个在你的循环之外初始化的计数器,然后一旦计数器达到3你就会中断。我也修复了你的case表达式。如果case位于user_input,则您不需要与user_input中的when进行比较。

这应该可以解决问题:

print "Grandma: Say something: "
bye_count = 0
while user_input = gets.chomp
  case user_input
  when user_input.upcase
    puts "NO, NOT SINCE! " + rand(1930..1950).to_s
    break
  when 'Bye'
    bye_count += 1
    if bye_count >= 3
      puts 'Good bye!'
      break
    end
  else
    puts "HUH?!  SPEAK UP, NOW!"
    print "Grandma: Say something: "
  end
end