사용자가 '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 안녕하세요! 나는이 문제에 대한 해결책을 찾고 있었고, 지금까지 매우 비슷한 제안만을 찾을 수 있었지만, 당신을 포함한 어떤 것도 나에게 적합하지 않았다. 루비에서 변화가 있습니까? 감사. #ruby 새내기 –
내 요지를 참조하십시오 : https://gist.github.com/1759451. –