do-while 문 — 선실행 후검사와 최소 한 번 실행, 끝의 세미콜론 | 기초 C언어 7.2.2
기초 C언어Chapter 07 반복문 › Section 02 while 문
7.2.2 do-while 문
코드를 먼저 한 번 실행한 뒤 조건을 검사하는 do-while. 처음부터 거짓인 조건에서 while 문과 달라지는 실행 결과를 비교.
영상 목차 · 원하는 부분부터 보기
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 문을 다룸.
이 절의 핵심 정리
- do-while 문은 코드를 먼저 실행한 뒤 조건을 검사하는 선실행 후검사 반복문이다.
- 조건식의 참·거짓과 관계없이 do 블록의 코드는 최소 한 번 실행된다.
- do-while 문은 while (조건식) 뒤에 반드시 세미콜론을 붙여야 한다.
- 처음부터 거짓인 조건에서 while 문은 내부 코드를 실행하지 않고 do-while 문은 한 번 실행한다.
- 메뉴를 먼저 보여 주고 입력 값에 따라 반복 여부를 정하는 프로그램에 do-while 문이 유용하다.
강의 자료7.2.2 do-while 문
1 / 12
번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다

댓글
댓글 쓰기