JAVA 기초

반복문 (while, do-while 문)

미고코딩 2022. 7. 12. 12:56

while, do-while 문은 for문과 흐름은 비슷하지만 사용하는 방식에 약간의 차이가 있습니다.

 

간단한 예제로 한번 보시겠습니다.

 

		System.out.println("while 문");
		
		int init = 0;
		
		while (++init <= 10) {
			System.out.println(init);
		}

 

일단 while문입니다. while 문은 for문과 비슷하게 보이지만, 초기식을 while문 밖에서 선언하고, 조건과 증감식만 존재하는 것을 확인할 수 있습니다.

 

만약 위와 같은 조건식을 달아주지 않고 while문을 돌리면, 흔히 이야기하는 무한루프에 빠지게 됩니다.

 

풀어서 이야기하면 실행한 코드의 끝이 어딘지 몰라 무한히 지속되게 된다는 이야기입니다.

 

반복문은 기본적으로 조건을 만족할 때까지 반복되기 때문이라고 생각하시면 됩니다.

 

이는 for문에서도 발생할 수 있는 문제이지만, 보통은 while이나 do-while 문에서 자주 발생합니다.

 

때문에 이에 유의하며 반복문을 짜야합니다.

 

		System.out.println("do-while 문");
		init = 0;
		do {
			System.out.println(init);
		} while (++init <= 10);

 

 

do-while 문은 기본적으로 while문과 비슷한 구조를 가지고 있지만, while 문과 한가지 차이가 있습니다.

 

증감식, 조건식이 반복문 도입에 나오는 while문과 달리, do-while 문은 일단 문단을 먼저 시행하고 조건을 확인합니다.

 

때문에 조건이 맞든 틀리든, 무조건 1번은 반복한다는 이야기입니다.

 

		do {
			System.out.println(init);
		} while (++init > 10);

 

다음과 같이 말이죠. init은 분명 0으로 초기화시켜 주었는데, 10보다 크다는 잘못된 조건을 가지고 있음에도 1번은 출력한 것을 확인할 수 있었습니다.