더북(TheBook)

이와 같은 상태를 ‘무한 루프를 돌고 있다’고 합니다. 무한 루프(endless loop)란 프로그램이 같은 과정을 끝없이 반복하는 것을 말합니다. 방금 작성한 while 문을 다시 볼까요? i0이므로 10보다 작습니다. 그 외 변하는 부분이 없기 때문에 빠져나올 부분도 없습니다. 따라서 프로그램은 조건을 계속 반복하게 됩니다.

 

무한 루프에 빠지면 프로그램이 끝나지 않고 계속되므로 컴퓨터 자원을 낭비합니다. Terminate를 클릭한 것처럼 사용자나 운영체제가 강제로 중단해야 합니다. 따라서 무한 루프는 특히 조심해야 합니다.

 

자, 그럼 코드를 수정해볼까요? 처음에 의도했던 바가 0~9까지 출력하는 것이었죠? 변수 i를 출력하는 구문을 넣어보겠습니다. 그리고 다시 실행해볼게요.

public class WhileExam {
    public static void main(String[] args) {
        int i = 0;
        
        while(i < 10) {
            System.out.println(i);
        }
    }
}

 

실행결과

0
0
0
…

 

0이 계속 출력됩니다. 마찬가지로 무한 루프 상태입니다. Terminate를 눌러서 중지시킵니다. 현재 i0이고, 조건은 ‘i가 10보다 작다’이므로 값은 항상 참입니다. 따라서 프로그램을 빠져나오지 못하고 0만 계속 출력하는 것입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.