2017-02-16 1 views
-1

다음 프로그램을 종료하고 콘솔보기의 맨 처음으로 올라가려고하면 처음 두 루프가 실행되지 않습니다. 왜 나 한테 설명 할 수 있니?무한 루프 만 작동합니까?

public class WhileLoop { 
    public static void main(String[] args) { 
     double number= 25.2; 
     int myInt= 0; 
     int x=365; 

     while (myInt<9){ // Finite while loop 
      System.out.println("Hello "+ myInt); 
      myInt= myInt+1; 
     } 

     while(x>0){ //this is running out of year days loop 
      System.out.println(x); 
      x=x-1; 
      System.out.println(x);   
     } 

     while (number==25.2){ // an infinite loop 
      System.out.println("hahaha"); 
     }  
    } 
} 
+7

인쇄 중입니다. 오래된 결과물은 결국 사라집니다. – shmosel

+0

파일에서 출력을 캡처하면 첫 번째 루프의 초기 비트를보다 쉽게 ​​볼 수 있습니다. 그래도 큰 파일을 매우 빨리 만들 수 있으므로 프로그램을 빨리 종료해야합니다. –

+0

이제 나는 그것이 처음부터 나타나지만 다시 한번 그것이 결국 분명 해지는 이유를 알았습니다. –

답변

0

이클립스 기본값을 콘솔에서 데이터의 양을 제한하는 그것이를하지 ​​않도록 메모리 부족 예외입니다.

'실행/디버그> 콘솔'의 환경 설정에서 구성 할 수 있습니다. 제한을 켜거나 끄려면 '콘솔 출력 제한'확인란을 선택하고 버퍼 크기를 설정할 수있는 '콘솔 버퍼 크기'필드를 선택하십시오.

+0

선생님, 우리는 이야기 할 수 있습니까? 나는 당신에게 몇 가지 물어볼 필요가 있습니까? –

+0

@SurajJain 직접 질문에 대답하지 않습니다. 스택 오버플로 또는 어디에서든지 알 수 있습니다. –

+0

선생님, 그건 그 일에 관한 것이 아닙니다. –

0

Thread.sleep (1000); 루프 사이. 1 초 동안 잠자기 상태가됩니다. 그렇게하면 다른 루프를 계속하기 전에 출력을 볼 수 있습니다. 기다리고 싶을 때마다 초당 1000을 추가하십시오.

+0

지금은 실제로 실행되는 것을 볼 수 있지만 왜 사라지나요? 디버깅을하더라도 첫 번째 두 개의 루프는 표시되지 않습니다. –

0

@shmosel이 말했듯이 출력이 지워집니다. 당신은 여전히 ​​느린 방식으로 출력을보고 싶다면

당신은 사용할 수 있습니다

Thread.sleep(amountOfTime);

public class WhileLoop { 
    public static void main(String[] args) { 
     double number= 25.2; 
     int myInt= 0; 
     int x=365; 


    while (myInt<9){        // Finite while loop 
     System.out.println("Hello "+ myInt); 
     myInt= myInt+1; 
     Thread.sleep(500l); 
    } 



    while(x>0){    //this is running out of year days loop 
     System.out.println(x); 
     x=x-1; 
     Thread.sleep(500l); 
     System.out.println(x); 

       } 





    while (number==25.2){     // an infinite loop 
     System.out.println("hahaha"); 
         } 

} 
}