这是困扰我的代码部分:
print "Command, please: "
command = gets.chomp
case.response
when 0
exit
when 1
puts "Hello, world!"
我想让程序重复返回print "Command, please: "部分,并允许我在命令完成后输入另一个"Command "(例如,在命令1之后,我命令程序说"Hello, world!"
因此,我应该添加一个goto
语句或类似的东西吗?据我所知,Ruby中没有goto
函数。我试着在谷歌上搜索Ruby中goto
函数的替代方案,但我没有得到一个直接的,初学者友好的答案。
或者我应该创建一个以开始的循环打印"Command, please:"并在命令之后使用redo
函数吗?如果是,我如何建立这个循环?换句话说,我要输入什么才能让Ruby理解我想让循环从哪里开始?
谢谢!
这是一个循环。您可以通过将代码包装在loop
块中来实现您想要的效果,就像这样
loop do
# Your program
end
试试这个:
loop do # Edit: more Rubyesque than 'while true', see comments and other answers.
print "Command, please: "
command = gets.chomp
case command
when "0"
exit
when "1"
puts "Hello, world!"
end
end
注意:
case command
-您正在检查命令变量,而不是case对象上的response
方法。
when "0"
-返回的总是一个字符串,所以它永远不会匹配0
-一个整数。
end
-你已经打开了一个case语句