C

[내배캠자습]C언어 챕터 4-4 : 무한 반복문, break, continue

BreadMushroom 2026. 3. 28. 17:04

무한 반복문

무한 반복문은 for문보다는 while문으로 구현하는 경우가 많습니다.

while (1) // 1은 true일까 false일까요?
{
	명령어1;
	...
}
int i;
for (i = 1; 1; ++i) // 조건식을 1이 아닌 그냥 비워두어도 참으로 간주됩니다.
{
	명령어1;
	...
}

 

 

falsy와 while의 조건문

while (-9) // -9는 true일까요 false일까요?
{
	명령어1;
	...
}
while (0) // 0은 true일까요 false일까요?
{
	명령어1;
	...
}

 

무엇이든지 무한하게 도는 것은 아주 위험합니다.

막연하게 무한히 돈다는 것은 다시는 그 장치를 쓸 수 없다는 뜻과 같습니다. 멈추는 코드가 없기 때문입니다. 그렇기 때문에 break 구문이 필요합니다.

break

반복문이나 switch-case문에서 탈출 할 때 break 구문을 사용합니다. 해당 스코프에서만 탈출됩니다. 다중 반복문 전체를 다 탈출하는게 아님에 주의합시다.

while (1)
{
	while (2)
	{
		break; // while (2) 반복문만 탈출됨.
	}
}

continue

반복문에서 continue 구문을 만나면 해당 회차는 건너뛰고 다음 회차 진행합니다. 반복문을 아에 탈출하는 게 아닌 특정 순회 번째만 무시합니다. 특정 순회에서는 아무 일도 안하고 다음 순회로 가고 싶을 수 있기 때문입니다.

Ex040401) 무한반복문과 break, continue

다음의 소스코드를 “천천히 읽기”로 출력 결과를 예측해봅시다. 예측 결과와 실행 결과와 비교해봅시다.

// Main.c

#include <stdio.h>

int main(void)
{
	int i = 0;

	while (1)
	{
		if (i % 2 == 1)
		{
			++i;
			continue;
		}

		if (5 <= i)
		{
			break;
		}

		printf("%d ", i);

		++i;
	}

	return 0;
}

천천히 읽기
1.main함수 시작
2.int 자료형 변수 i에 0 초기화
3.while문 조건확인 1이니 항상 실행
4.if문 조건확인 변수 i에 저장된 값을 2로 나눈 나머지가 1일때 중괄호 속실행
5.i=0이니 조건에 맞지 않음
6.if문 조건확인 변수 i에 저장된 값이 5보다 크거나 같으면 중괄호 속 실행
7.i=0이니 조건에 맞지 않음
8.변수i를 %d형식으로 출력 후 i에 1을 증가
9.다시 while문 조건확인 1이니 항상 실행
10.if문 조건확인 변수 i에 저장된 값을 2로 나눈 나머지가 1일때 중괄호 속실행
11.i=1이니 조건에 맞음
12.i에 1을 증가 후 이번 순회는 건너뛰어라 (코드진행 후i=2)
13.다시 while문 조건확인 1이니 항상 실행
14.if문 조건확인 변수 i에 저장된 값을 2로 나눈 나머지가 1일때 중괄호 속실행
15.i=2이니 조건에 안맞음
16.if문 조건확인 변수 i에 저장된 값이 5보다 크거나 같으면 중괄호 속 실행
17.i=2이니 조건에 안맞음
18.변수i를 %d형식으로 출력 후 i에 1을 증가 (코드진행 후i=3)
19.다시 while문 조건확인 1이니 항상 실행
20.if문 조건확인 변수 i에 저장된 값을 2로 나눈 나머지가 1일때 중괄호 속실행
21.i=3이니 조건에 맞음
22.i에 1을 증가 후 이번 순회는 건너뛰어라 (코드진행 후i=4)
23.다시 while문 조건확인 1이니 항상 실행
24.if문 조건확인 변수 i에 저장된 값을 2로 나눈 나머지가 1일때 중괄호 속실행
25.i=4이니 조건에 안맞음
26.if문 조건확인 변수 i에 저장된 값이 5보다 크거나 같으면 중괄호 속 실행
27.i=4이니 조건에 안맞음
28.변수i를 %d형식으로 출력 후 i에 1을 증가 (코드진행 후i=5)
29.다시 while문 조건확인 1이니 항상 실행
30.if문 조건확인 변수 i에 저장된 값을 2로 나눈 나머지가 1일때 중괄호 속실행
31.i=5이니 조건에 맞음
32.i에 1을 증가 후 이번 순회는 건너뛰어라 (코드진행 후i=6)
33.다시 while문 조건확인 1이니 항상 실행
34.if문 조건확인 변수 i에 저장된 값을 2로 나눈 나머지가 1일때 중괄호 속실행
35.i=6이니 조건에 안맞음
36.if문 조건확인 변수 i에 저장된 값이 5보다 크거나 같으면 중괄호 속 실행
37.i=6이니 조건에 맞음 break만나고 while 반복문 탈출 
38.return 0만나 mian함수 종료