do-while 문 — 선실행 후검사와 최소 한 번 실행, 끝의 세미콜론 | 기초 C언어 7.2.2

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

7.2.2 do-while 문

코드를 먼저 한 번 실행한 뒤 조건을 검사하는 do-while. 처음부터 거짓인 조건에서 while 문과 달라지는 실행 결과를 비교.

교재 수록 위치
교재
『기초 C언어』 · 이은상 · 부크크 · 364쪽
단원
Chapter 07 반복문 › Section 02 while 문 › do-while 문
쪽수
204p ~ 207p4쪽
세부 내용
do-while 문이란? · do-while 문의 기본 형식 · while 문 끝의 세미콜론 · while 문과 비교 · CODE 7.8 · CODE 7.9
학습 목표
선검사 후실행과 선실행 후검사를 구분하고, 처음부터 거짓인 조건에서 while 문과 do-while 문의 실행 결과를 비교함
영상 목차 · 원하는 부분부터 보기
  1. 0:00 · 강의 소개와 선실행·후검사
  2. 1:11 · 동작 순서와 기본 형식
  3. 3:09 · 끝에 붙는 세미콜론
  4. 4:46 · while 문과 do-while 문 실행 결과 비교
  5. 8:29 · do-while 문의 활용
  6. 9:21 · 핵심 정리

01검사와 실행의 차례가 바뀐 반복문교재 204p

  • 앞 편의 while 문과 for 문은 루프에 진입하기 전에 먼저 조건을 검사하는 선검사 후실행 방식. 조건이 처음부터 거짓이면 코드가 한 번도 실행되지 않을 수 있음.
  • do-while 문 — 코드를 먼저 한 번 실행한 뒤 조건을 검사하는 선실행 후검사 방식의 반복문. do는 ‘하다’라는 뜻의 영어 낱말.
  • 이 구조적 차이 때문에 조건식의 참·거짓과 관계없이 반복될 코드가 최소 한 번은 반드시 실행됨. 일단 맛을 본 뒤 더 먹을지 정하는 것과 비슷한 차례.
반복문차례처음부터 거짓인 조건
for · while조건 검사 → 코드 실행한 번도 실행되지 않을 수 있음
do-while코드 실행 → 조건 검사최소 한 번 실행

02맨 끝에서 만나는 조건식교재 204p

  • 동작 순서는 초기식(한 번만) → 코드 블록 → 증감식 → 조건식. 조건식이 참이면 코드 블록으로 돌아가고, 거짓이면 반복을 종료하고 다음 코드를 실행.
  • while 문처럼 초기식은 반복문 앞, 증감식은 블록 안에 따로 적는 구조.
  • 조건 검사가 코드 블록 실행보다 나중 차례. 조건이 거짓으로 판별되는 시점에는 이미 한 번 실행된 뒤임.

03do로 열고 while로 닫는 형식교재 204~205p

  • 기본 형식은 do { 실행문 } while (조건식);. 조건식이 문장의 맨 끝에 오는 것이 특징.
  • do { ... } — 먼저 실행될 코드 블록을 감싸는 부분.
  • while (조건식); — 코드 블록이 끝난 뒤 조건을 검사. 참이면 do 블록의 처음으로 돌아가 반복 실행, 거짓이면 반복문을 종료. 같은 while이지만 여기서는 반복문을 여는 말이 아니라 닫는 말.

04끝에 반드시 붙이는 세미콜론교재 205p

  • 일반 while 문과 달리 do-while 문의 끝에는 반드시 세미콜론(;)을 붙임. while 줄이 문장의 끝이기 때문이며, C언어의 문법 규칙.
  • 세미콜론을 빠뜨리면 컴파일 오류가 발생.

일반 while 문에는 붙이지 않음

일반 while 문의 조건식 바로 뒤에 세미콜론을 잘못 붙이면 아무 일도 하지 않는 빈 반복이 됨. 조건이 참이면 7.2.1의 무한 루프처럼 그 자리에서 멈추지 않음. 두 반복문에서 세미콜론의 위치를 구분.

05처음부터 거짓인 조건에서의 비교교재 205~207p

  • CODE 7.8과 CODE 7.9 모두 i를 10으로 초기화하고 조건식은 i < 5. 10 < 5이므로 처음부터 거짓.
  • CODE 7.8(while)의 결과는 while 문 시작 / while 문 종료 두 줄. 내부 코드는 한 번도 실행되지 않고 건너뜀.
  • CODE 7.9(do-while)의 결과는 do-while 문 시작 / do-while 문 내부 코드 실행 / do-while 문 종료 세 줄. 조건이 거짓임에도 do 블록의 코드가 먼저 한 번 실행됨. 상세 코드는 교재 CODE 7.8·7.9.

달라진 것은 조건을 검사하는 때

두 예제의 변수 값과 조건식은 동일. 출력 줄 수의 차이는 조건의 값이 아니라 조건을 검사하는 시점에서 생김.

06do-while 문이 유용한 경우와 다음 편교재 207p

  • 먼저 실행하고 나중에 조건을 따져야 하는 경우에 유용. 예를 들어 사용자에게 메뉴를 먼저 보여 주고 입력을 받은 뒤, 그 입력 값에 따라 반복 여부를 결정하는 프로그램.
  • 메뉴는 적어도 한 번은 보여야 하고, 무엇을 고를지는 보여 준 뒤에야 알 수 있는 구조. while 문으로 쓰려면 반복문 앞에서 메뉴를 한 번 더 보여 주거나 첫 검사가 참이 되도록 변수를 미리 맞춰 두어야 함.
  • 이로써 for·while·do-while 세 반복문을 모두 학습. 다음 편 7.3.1에서는 반복 안에 반복을 넣는 중첩 for 문을 다룸.

이 절의 핵심 정리

  1. do-while 문은 코드를 먼저 실행한 뒤 조건을 검사하는 선실행 후검사 반복문이다.
  2. 조건식의 참·거짓과 관계없이 do 블록의 코드는 최소 한 번 실행된다.
  3. do-while 문은 while (조건식) 뒤에 반드시 세미콜론을 붙여야 한다.
  4. 처음부터 거짓인 조건에서 while 문은 내부 코드를 실행하지 않고 do-while 문은 한 번 실행한다.
  5. 메뉴를 먼저 보여 주고 입력 값에 따라 반복 여부를 정하는 프로그램에 do-while 문이 유용하다.
강의 자료7.2.2 do-while 문 1 / 12

번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 7.3.1 중첩 for 문의 이해 교재 208p~210p — 반복문 안에 또 다른 반복문을 넣은 중첩 for 문 ↗

더 자세한 내용은 교재에서

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

댓글

이 블로그의 인기 게시물

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

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