while 문 — 초기식·조건식·증감식의 자리와 무한 루프 | 기초 C언어 7.2.1

기초 C언어Chapter 07 반복문 › Section 02 while 문

7.2.1 while 문

특정 조건을 만족하는 동안 코드를 계속 반복하는 while. for 문과 같은 결과를 내는 코드에서 세 요소의 위치 차이와 증감식을 빠뜨린 무한 루프를 비교.

교재 수록 위치
교재
『기초 C언어』 · 이은상 · 부크크 · 364쪽
단원
Chapter 07 반복문 › Section 02 while 문 › while 문
쪽수
200p ~ 203p4쪽
세부 내용
while 문이란? · while 문의 기본 형식 · for 문과 비교하기 · CODE 7.5 · CODE 7.6 · 무한 루프의 함정 · CODE 7.7
학습 목표
while 문에서 초기식·조건식·증감식의 위치를 구분하고, 증감식 누락이 무한 루프로 이어지는 원리를 설명함
영상 목차 · 원하는 부분부터 보기
  1. 0:00 · 강의 소개와 while 문
  2. 0:52 · 기본 형식과 동작 순서
  3. 3:04 · for 문과 while 문 비교
  4. 6:58 · 증감식과 무한 루프
  5. 10:04 · 핵심 정리

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 문에서 다룸.

이 절의 핵심 정리

  1. while 문은 특정 조건을 만족하는 동안 코드를 반복해서 실행한다.
  2. 초기식은 while 문 앞, 조건식은 소괄호 안, 증감식은 코드 블록 안에 위치한다.
  3. 조건식이 참이면 블록을 실행하고 거짓이면 반복을 종료한다.
  4. 같은 1부터 5까지의 출력도 for 문과 while 문은 반복을 제어하는 요소를 놓는 자리가 다르다.
  5. 블록 안에 조건을 거짓으로 만드는 변화가 없으면 무한 루프가 발생한다.
강의 자료7.2.1 while 문 1 / 12

번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 7.2.2 do-while 문 교재 204p~207p — 코드를 먼저 한 번 실행한 뒤 조건을 검사하는 do-while ↗

더 자세한 내용은 교재에서

이 글은 『기초 C언어』 200p~203p의 내용을 강의 영상에 맞춰 핵심만 간추린 요약입니다. 각 개념의 상세한 설명과 예제, 실습 코드, 임용시험 기출문제 풀이는 교재에서 다루고 있습니다.

댓글

이 블로그의 인기 게시물

2007년 국가직 9급 기계일반 기출문제 풀이

기계공작법 연습문제 130문 | 임용 기출 영상·교재 쪽수 바로가기