测试 Ruby 中重复的 gets.chomp 输入
Test for repeated gets.chomp input in Ruby
我在 Ruby 工作,我正在尝试测试用户的输入(变量 kid
)三次是否相同。
我希望我的方法 speak
被无休止地调用,直到用户在被问及三个单独的问题时分别输入 "BYE" 三次。
现在,如果用户输入 "BYE" 即使只是一个问题,终端和用户之间的整个对话也会结束。
有没有办法让"BYE"的程序测试被说三遍,只说三遍,就结束对话?
kid = gets.chomp
unless kid == "BYE"
speak
end
我不知道是否有真正简单的解决方案或只有复杂的解决方案,但任何答案都有帮助。
我建议寻找有关 "loops" 和 "control flow" 的 ruby 教程。
我想Ruby Primer lesson at rubymonk.com可能有你需要的东西。
这个例子也可能有帮助:
times = 0 # keep track of iterations
while times < 10 # repeatedly, while this condition is true
puts "hello!" # output "hello!"
times += 1 # increase count of iterations
end
您需要跟踪用户输入的次数 "BYE"。当该数字达到 3 时,您退出:
byecount = 0
while kid = gets.chomp
case kid
when "BYE"
#increase the count of bye
byecount +=1
puts byecount
break if byecount == 3
else
#reset our count
byecount = 0
speak
end
end
代码在非 "BYE" 答案时重置为 0。
我发现 case
语句在这种情况下处理不同的用户输入时非常方便,尤其是与正则表达式结合使用时。
我在 Ruby 工作,我正在尝试测试用户的输入(变量 kid
)三次是否相同。
我希望我的方法 speak
被无休止地调用,直到用户在被问及三个单独的问题时分别输入 "BYE" 三次。
现在,如果用户输入 "BYE" 即使只是一个问题,终端和用户之间的整个对话也会结束。
有没有办法让"BYE"的程序测试被说三遍,只说三遍,就结束对话?
kid = gets.chomp
unless kid == "BYE"
speak
end
我不知道是否有真正简单的解决方案或只有复杂的解决方案,但任何答案都有帮助。
我建议寻找有关 "loops" 和 "control flow" 的 ruby 教程。
我想Ruby Primer lesson at rubymonk.com可能有你需要的东西。
这个例子也可能有帮助:
times = 0 # keep track of iterations
while times < 10 # repeatedly, while this condition is true
puts "hello!" # output "hello!"
times += 1 # increase count of iterations
end
您需要跟踪用户输入的次数 "BYE"。当该数字达到 3 时,您退出:
byecount = 0
while kid = gets.chomp
case kid
when "BYE"
#increase the count of bye
byecount +=1
puts byecount
break if byecount == 3
else
#reset our count
byecount = 0
speak
end
end
代码在非 "BYE" 答案时重置为 0。
我发现 case
语句在这种情况下处理不同的用户输入时非常方便,尤其是与正则表达式结合使用时。