while 문 — 초기식·조건식·증감식의 자리와 무한 루프 | 기초 C언어 7.2.1
기초 C언어Chapter 07 반복문 › Section 02 while 문
7.2.1 while 문
특정 조건을 만족하는 동안 코드를 계속 반복하는 while. for 문과 같은 결과를 내는 코드에서 세 요소의 위치 차이와 증감식을 빠뜨린 무한 루프를 비교.
영상 목차 · 원하는 부분부터 보기
01조건이 기준이 되는 반복문교재 200p
- 앞 편까지는 for 문으로 횟수가 정해진 반복을 다룸. for 문은 정해진 횟수만큼 반복하는 데 최적화된 구조.
- while 문 — 특정 조건을 만족하는 동안 코드를 계속해서 반복하는 반복문. for 문과 함께 가장 많이 사용됨.
- while은 ‘~하는 동안’이라는 뜻의 영어 낱말. 몇 번 반복할지 미리 정하지 않고, 물이 끓을 때까지 불을 켜 두는 일처럼 끝나는 시점을 조건으로만 알 수 있을 때 적합.
02소괄호 안에는 조건식 하나교재 200~201p
- 기본 형식은 for 문보다 간단. 초기식을 먼저 두고, while (조건식) 뒤의 중괄호 블록 안에 실행문과 증감식을 함께 배치.
- 소괄호 안에는 조건식 하나뿐이며 세미콜론도 없음. for 문에서 한 줄에 모여 있던 세 요소가 따로 떨어져 자리를 잡는 구조.
| 요소 | while 문에서의 위치 |
|---|---|
| 초기식 | while 문이 시작되기 전 |
| 조건식 | while 문의 소괄호 안 |
| 증감식 | while 문의 코드 블록 안 |
- 조건식 결과가 참(0이 아닌 값)이면 블록을 실행하고, 거짓(0)이면 반복을 종료하고 빠져나감. 참·거짓의 기준은 5.2.1에서 본 그대로.
03while 문의 동작 순서교재 201p
- 초기식은 루프 시작 전에 1회만 실행. 이후 조건식 판별 → 참이면 코드 블록 실행 → 증감식으로 변수 갱신 → 다시 조건식 판별로 되돌아가는 흐름.
- 조건식이 거짓이 되면 반복을 종료하고 반복문 다음 코드를 실행.
- 흐름 자체는 for 문과 같은 모양. 다른 점은 각 요소가 코드의 어디에 적히느냐뿐.
04CODE 7.5와 CODE 7.6의 같은 결과교재 201~202p
- 1부터 5까지 출력하는 같은 작업을 for 문과 while 문으로 각각 구현한 교재 예제. 실행 결과는 둘 다 1부터 5까지 한 줄에 하나씩.
- CODE 7.5는 for의 소괄호 한 줄에 i = 1, i <= 5, i++가 모여 있는 구성.
- CODE 7.6은 초기식이 반복문 앞, 조건식 i <= 5가 소괄호 안, 증감식 i++가 블록 안으로 나뉜 구성. i가 6이 되는 순간 조건이 거짓이 되어 종료. 상세 코드는 교재 CODE 7.5·7.6.
05반복 제어 요소가 놓이는 자리교재 202p
- 두 예제의 차이는 출력이 아니라 반복을 제어하는 요소가 놓이는 자리. while 문에서는 이 요소들이 코드의 여러 부분에 나뉘어 위치.
- 그만큼 증감식을 어디에 두었는지 직접 챙겨야 하는 구조.
블록 안에서도 증감식의 순서가 중요
증감식을 중괄호 안에 두더라도 printf보다 앞에 두면 i를 먼저 늘린 뒤 출력하므로 결과가 2부터 6까지로 바뀜. 블록 안에 있는지뿐 아니라 실행문과의 순서까지 확인.
06무한 루프의 함정과 다음 편교재 202~203p
- 무한 루프(Infinite Loop) — 조건식이 영원히 참이 되어 반복이 끝나지 않는 상태. while 문을 사용할 때 가장 주의할 점.
- CODE 7.7은 블록 안에서 조건식을 거짓으로 만드는 변화(i++)를 빠뜨린 예제. i가 항상 1이므로 결과는 현재 i의 값: 1이 끝없이 반복되고, 반복문 뒤의 종료 메시지는 실행되지 않음.
for보다 while에서 흔한 실수
7.1.1에서 for 문의 증감식을 빠뜨려도 무한 반복이 된다고 했지만, while 문은 증감식이 소괄호 밖 블록 안에 따로 떨어져 있어 빠뜨리기 쉬움. 실습 중 무한 루프에 빠지면 Ctrl + C로 프로그램을 강제 종료.
- for와 while은 먼저 검사하고 나중에 실행하는 반복문. 먼저 실행하고 나중에 검사하는 반복문은 다음 편 7.2.2 do-while 문에서 다룸.
이 절의 핵심 정리
- while 문은 특정 조건을 만족하는 동안 코드를 반복해서 실행한다.
- 초기식은 while 문 앞, 조건식은 소괄호 안, 증감식은 코드 블록 안에 위치한다.
- 조건식이 참이면 블록을 실행하고 거짓이면 반복을 종료한다.
- 같은 1부터 5까지의 출력도 for 문과 while 문은 반복을 제어하는 요소를 놓는 자리가 다르다.
- 블록 안에 조건을 거짓으로 만드는 변화가 없으면 무한 루프가 발생한다.
강의 자료7.2.1 while 문
1 / 12
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기