大家好,我的代码存在问题。当我添加下面的代码时,它无法工作。
until result || input == "quit"
然而,当我删除该行的输入时,代码完全正常。
input = gets.chomp
print "you just told me #{input}"
result = " "
until result || input == "quit"
result = gets.chomp
if result == "quit"
puts "Alright Goodbye"
else
puts "I heard #{results}"
end
end
非常感谢你的帮助:)。
答案 0 :(得分:0)
特里斯坦
您应该将result = " "
更改为result = gets.chomp
或删除result = " "
并在您的语句中使用result = gets.chomp
。基本上修复了Josh在评论中提到的内容
答案 1 :(得分:0)
您的脚本中有多个错误。我修改它以便它正在运行:
puts "Say something:"
input = gets.chomp
puts "you just told me #{input}"
while input != "quit"
puts "Say something:"
input = gets.chomp
if input == "quit"
puts "Alright Goodbye"
else
puts "I heard #{input}"
end
end
result
,input
),除非您需要两个变量results
代替result
nil
和false
之外的所有内容都被视为true
。所以" "
,但空字符串" "
也是如此。答案 2 :(得分:0)
您的意思是“直到结果或输入相等”退出“(其中任何一个)”? 如果是这样,这是一个经典的菜鸟错误。需要这样写:
result == 'quit' || input == 'quit'
答案 3 :(得分:0)
我可以在这里看到两个问题。
您永远不会定义名为results
的内容,只会定义result
。这可能会引发错误,指出results
未定义。
此外,结果似乎没有添加任何内容,因为您的程序仅使用最近输入的信息,我将其简化为只有一个名为input
的变量。
input = gets.chomp
print "you just told me #{input}"
until input == "quit"
input = gets.chomp
if input == "quit"
puts "Alright Goodbye"
else
puts "I heard #{input}"
end
end
此外,当until
等于退出时,input
数据块将移至您的计划结束,因此您也不需要同时检查if块中的条件。您可以将该条件的结果放在until块之后。
input = gets.chomp
until input == "quit"
puts "I heard #{input}"
input = gets.chomp
end
puts "Alright, Goodbye!"
基本上,您提供的代码远远多于此一项检查所需的代码。
我希望这会有所帮助。继续学习编码,这是一件非常有意义的事情。 :)