我无法让这个程序正确响应用户输入。无论用户输入什么(我已尝试case
和while
),各种循环技术要么只运行块一次,要么无限运行块。这是我尝试过的最新方法:
work_summary = []
begin
# code that runs a sprint and adds results to the work_summary array
puts "Would you like to add a sprint, Y/N?"
sprint = gets.to_s
end until sprint == "N"
print work_summary, "\n"
Ruby永远不会使用任何各种方法反对我的语法,但它也永远无法工作。
答案 0 :(得分:5)
你需要
sprint = gets.chomp
获取带尾随“\ n”的返回字符串。
答案 1 :(得分:3)
http://web.njit.edu/all_topics/Prog_Lang_Docs/html/ruby/syntax.html#begin
Begin通常用于异常处理。我想你正在寻找一个while
循环。
这是一个例子 work_summary = []
while true
puts "Would you like to add a sprint?"
sprint = gets.chomp
if sprint == "N"
break
elsif sprint == "Y"
puts "What's your time?"
time = gets.chomp
work_summary << time
else
puts "I didn't understand your request. Enter Y or N"
end
end
答案 2 :(得分:2)
我发现这里有两种适合你的可能性
第一个是
while true
puts "Would you like to add a sprint?"
sprint = gets.chomp
if sprint == "N"
break
elsif sprint == "Y"
puts "What's your time?"
time = gets.chomp
work_summary << time
else
puts "Wrong request. Enter Y or N"
end
end
这里Lopp将一直运行直到休息不执行
第二件事你可以修改代码中的1行
sprint = gets.chomp
这将提取字符串的最后一个特殊字符,该字符由get生成并在您的情况下正常工作