我是ruby的新手,我试图制作一个循环,每秒输出0到1之间的随机数,直到用户点击任意一个键。然后,输出生成的随机数的总数和生成的数的平均值。但是,我根本无法使循环停止,是否有类似中断来阻止红宝石中的循环?
def random
ran = []
puts "Press 1 and 'enter' to start and 2 to stop \n"
s = gets.chomp
ran << Random.rand(0.0...1.1)
ran.each do|i|
ran << Random.rand(0.0...1.1)
puts i
sleep(1)
end
puts "The total number of random numbers generated is: #{ran.length}"
end
random
答案 0 :(得分:1)
你真的不需要另一个线程。
numbers = []
puts 'Press ENTER to start'
puts 'Press Ctrl-C to stop'
gets
loop do
numbers << rand
sleep 1
rescue Interrupt
puts
printf "Count: %d\n", numbers.size
printf "Mean: %f\n", numbers.sum / numbers.size
exit
end
需要Ruby&gt; = 2.5