我在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时,它将是唯一一次退出程序而不是一次。如何修改我的程序才能做到这一点?
答案 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