Ruby 按下空格键时触发循环暂停并继续

Ruby 按下空格键时触发循环暂停并继续,ruby,loops,while-loop,Ruby,Loops,While Loop,当我点击空格键时,我想暂停运行循环,并在这样做时再次恢复。我该怎么做 require 'rubygems' require 'rest-client' URL="some url here" data1 = 0 data2 = 0 sign = ["up","down","equal"] i=3 while true response = RestClient.get(URL) arr = (response.body).split(/"/) data2=arr[9]

当我点击空格键时,我想暂停运行循环,并在这样做时再次恢复。我该怎么做

require 'rubygems'
require 'rest-client'

URL="some url here"
data1 = 0
data2 = 0
sign = ["up","down","equal"]
i=3

while true
    response = RestClient.get(URL)
    arr = (response.body).split(/"/)
    data2=arr[9].to_i
    if data2>data1
        i = 0
    elsif data2<data1
        i = 1
    else data2 == data1
        i = 2
    end
    puts "#{arr[9]}   #{sign[i]}"
    data1=arr[9].to_i                       #marker<<<---Here
end
需要“rubygems”
需要“rest客户端”
URL=“此处的某些URL”
数据1=0
数据2=0
符号=[“向上”、“向下”、“相等”]
i=3
虽然是真的
response=RestClient.get(URL)
arr=(response.body).split(/“/)
data2=arr[9]。发送至_i
如果数据2>数据1
i=0

elsif data2使用线程?这不是一个直接的答案,但会让您了解如何使用线程

$key_hit = false
t1 = Thread.new{

loop{
        puts "Hello"
        break if $key_hit
    }
}

t2 = Thread.new {
    x = gets
    $key_hit = true
}
t1.join
t2.join

puts "Done, exiting"

@sawa当我按下空格键时,我如何暂停这个循环呢?
loop do…end
更可取,而true…end
更可取。是的,但是我如何实现我的愿望呢?一定要试着避免以这种随意的方式使用全局变量。这上面的缩进也到处都是。这不起作用,兄弟。你甚至试过运行自己的代码吗?它是just一直在打印
hello
,一点也不停。你试过按enter键来触发GET吗?我从来没有说过这是正确的代码。请阅读代码@Rishav@av501我确实按了回车键。我读了代码。我知道它不是准确的代码。但您的代码只是打印出
hello
,按回车键时,它会留下一行并继续作业。没有暂停,也没有等待另一个enter继续。我的PC@Rishav上的体验不会在这里完全退出。你在什么平台上运行此操作?无论如何,看看它背后的想法。没有人会给你确切的代码。使用线程背后的原理来完成作业。一个线程可以完成其他线程可以接受的工作输入。