Ruby 输入端接回路

Ruby 输入端接回路,ruby,Ruby,我正在试图找到一种方法,当用户点击“x”+Enter时终止循环。我希望循环只在后台运行,直到用户取消它 大致如下: while gets.chomp != 'x' puts 'looping...' sleep 1 end 我是一名编程初学者,已经广泛搜索了如何做到这一点,因此任何帮助都将不胜感激 您必须为此使用线程: Thread.new do while line = STDIN.gets break if line.chomp == 'x' end

我正在试图找到一种方法,当用户点击“x”+Enter时终止循环。我希望循环只在后台运行,直到用户取消它

大致如下:

while gets.chomp != 'x'

    puts 'looping...'

    sleep 1

end

我是一名编程初学者,已经广泛搜索了如何做到这一点,因此任何帮助都将不胜感激

您必须为此使用线程:

Thread.new do
  while line = STDIN.gets
    break if line.chomp == 'x'
  end
  exit
end

# whatever you want to do in the background
# (or rather in the foreground, actually)
loop do
  puts "foo"
  sleep 1
end

问题是
STDIN.get
块,因此如果不使用只检查输入的后台线程来并行化程序,则无法同时执行其他操作。

Merci Beaucup!我想我现在明白了@你好!我一直在寻找这个问题的解决方案,到目前为止,我只能找到非常类似的建议,但包括你的建议在内,没有一个适合我。ruby有什么变化吗?谢谢#RubyNewbies请在此处查看我的要点:。感谢提供有用的循环代码:)