终止输入循环

cat*_*bat 2 ruby

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

这些方面的东西:

while gets.chomp != 'x'

    puts 'looping...'

    sleep 1

end
Run Code Online (Sandbox Code Playgroud)

我是编程的初学者,并且已经广泛搜索了如何做到这一点,所以任何帮助都将深表感谢.

Nik*_* B. 5

你必须使用线程:

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
Run Code Online (Sandbox Code Playgroud)

问题是STDIN.gets块,所以如果不使用仅检查输入的后台线程并行化程序,则不能同时执行其他操作.