무한 반복문
무한 반복문은 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함수 종료
'C' 카테고리의 다른 글
| [내배캠자습]C언어 챕터 5-1 : 1차원 배열 (0) | 2026.03.28 |
|---|---|
| [내배캠자습]C언어 챕터 4-5 : 이중 반복문 (0) | 2026.03.28 |
| [내배캠자습]C언어 챕터 4-3 : do-while문 (0) | 2026.03.28 |
| [내배캠자습]C언어 챕터 4-2 : for문 (0) | 2026.03.28 |
| [내배캠자습]C언어 챕터 4-1 : while문 (0) | 2026.03.28 |