ユーザーが 'x' + Enterキーを押したときにループを終了させる方法を見つけようとしています。ユーザーがキャンセルするまで、ループをバックグラウンドで実行し続けます。これらの線に沿って入力時にループを終了する
何か:
while gets.chomp != 'x'
puts 'looping...'
sleep 1
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.gets
ブロックですので、あなただけをチェックしていること、バックグラウンドスレッドを使用してプログラムを並列化することなく、同時に何かを行うことはできません入力のために。
Merci beaucoup!私は今それを持っていると思う! – catbat
@niklasbこんにちは!私はこの問題の解決策を探していましたが、これまでのところ非常に似通った提案しか見つけられませんでしたが、あなたのものを含め誰も私のために働きません。ルビーに何か変わった?ありがとう。 #rubyNewbie –
ここに私の要点を見てください:https://gist.github.com/1759451。 –