나는 경우 같은 루프 : 나는 가 사용자 입력을 요구하지 않았다 코드를 추가하는 방법에 대한 이동하지만, 얼마나일시 정지 루프
for(int i = 0; i <= 10; i++) {
System.out.println("Hello, User " + i;
Thread.sleep(1000)
}
사용자는에서 일시 정지를 루프를 선택한 경우 주어진 시점에, 그들은 그렇게 할 수 있고, 잠시 후에 재개 할 수 있습니까?
나는 경우 같은 루프 : 나는 가 사용자 입력을 요구하지 않았다 코드를 추가하는 방법에 대한 이동하지만, 얼마나일시 정지 루프
for(int i = 0; i <= 10; i++) {
System.out.println("Hello, User " + i;
Thread.sleep(1000)
}
사용자는에서 일시 정지를 루프를 선택한 경우 주어진 시점에, 그들은 그렇게 할 수 있고, 잠시 후에 재개 할 수 있습니까?
이렇게하려면 멀티 스레딩을 구현해야합니다. 하나의 스레드는 루프 (T1)를 실행하고 다른 스레드는 사용자 입력 (T2)을 기다릴 수 있습니다.
T1 -> 은/브레이크 루프를
T2 계속 - - 입력 기다려 - 일반적인 부울 특성을 통해 입력이 있는지 확인> - 동안> 만약 입력 == "중지"-> 집합 당신은 북동 경우 코드를 다시 시작할 수 있습니다 같은 라인에
class MultiThread implements Runnable { boolean gotInput = false; int i = 0; public void run() { for(;i <= 10 && !gotInput; i++) { System.out.println("Hello, User " + i; Thread.sleep(1000) } } public static void main(String args[]) { MultiThread mt = new MultiThread(); Thread t = new Thread(mt); t.start(); Scanner s = new Scanner(System.in); while (!s.next().equals("pause")); test.gotInput = true; } }
:
뭔가처럼 일시 정지 루프 true로 공통 속성 편집.
사용자가 일시 중지를 선택할 때까지 1 초 동안 기다리는 백그라운드 스레드를 만들어보십시오. 1 초 이내에 선택되지 않으면 앞으로 이동하십시오.
이 방법을 쓰면 사용자의 Thread.sleep()
은 UI를 1 초 동안 잠그고 사용자의 작업과 상관없이 프로그램에 영향을 미치지 않습니다.
무엇? 사용자 입력을 원하지 않지만 사용자 입력을 설명한다는 것은 사용자가 말하는 것입니다. 너 정확히 뭘 하려구? – tnw
나는 @tnw와 함께있다 - 당신의 의도는 분명하지 않다. 'i = 6' 단계에서 더 긴 휴식 시간을 하드 코딩 하시겠습니까? – chrisb2244
가능한지 여부를 알 수 없기 때문에 아직 코드에 없습니다. 사용자가 무언가를 입력하고 싶다면 모든 반복을 물어보고 싶지 않습니다. 사용자가 각 반복에서 어느 시점 에든 무언가를 입력하여 하드를 일시 중지 할 수 있기를 바랍니다. – brianforan