C/C++언어 코딩 복습-제어문 7 (do while 문)
- do while 문: while 문과 do while 문은 거의 비슷하지만 특징적인 차이가 있습니다. while 문은 조건을 만족하지 않으면 반복처리 할 수행문을 한번도 수행하지 않고 빠져 나오는 반면 do while 문은 최소 한번은 수행한다는 것입니다. 구조는 다음과 같습니다.
do while 문
do
{
'수행문장' ;
}while(조건);
-
do while 문도 while 문과
마찬가지로 조건에 만족하면 반복수행을, 조건을 만족하지 않으면 반복을 빠져 나오게 됩니다. 단, 수행문장을 한번 수행한 후 조건을 물어본다는 차이점이 있습니다.
사용예시 :
예제코드
#include
<iostream>
using
namespace std;
int
main() {
int a;
cout << "Enter a natural number
between 10 and 20. : ";
cin >> a;
do{
cout << " Wrong !" <<
endl;
cout << " (Retry) Enter a natural
number between 10 and 20. : ";
cin >> a;
}while(a != 15);
cout << " Bingo !"
<< endl;
return 0;
}
-
앞의
while 문 예제를 간단하게 do
while 로 변형한 코드입니다. (현재는 잘못된 코드로
while 과 do
while 의 차이를 보이기 위해 작성한 코드 입니다.)
실행결과
-
실행을 하면 10 과 20 사이의 자연수를 입력하라는 문구가 나옵니다. 먼저 정답인 15를
입력하고 엔터를 쳐보겠습니다.
-
정답인 15 를 입력하였는데 틀렸다고 나옵니다. 그 이유는 a 에 15 를 입력 받은 후 do
while 의 수행문을 한번 실행하고 다시 입력을 받는 상태로 왔기 때문입니다.
- 즉 while 다음에 있는 조건문에는 아직 도달하지 않았습니다. 다른 숫자를 한번 넣어보고 정답을 입력해 보겠습니다.
- 5를 입력하니 잘못된 결과라고 나오고 다시 입력을 받습니다. 정답인 15를 입력하니
"Bingo !" 라는 문장이 나옵니다.
-
이제 잘못된 예제를 고쳐보도록 하겠습니다. 여러 가지 방법이 있지만 여기서는 아주 간단하게 고쳐보겠습니다.
#include
<iostream>
using
namespace std;
int
main() {
int a;
do{
cout << " Enter a natural number
between 10 and 20. : ";
cin >> a;
}while(a != 15);
cout << " Bingo !"
<< endl;
return 0;
}
-
정수형 변수 a 를 선언하고 " Enter a natural number between 10 and 20. : " 의 출력문과 cin 을 do
{} 괄호 안에만 작성하였습니다.
- 실행을 시키면 수행문이 수행돼 " Enter
a natural number between 10 and 20. : "를 출력하고 값을 입력 받습니다. 처음부터 15 를 넣어보겠습니다.
- 잘못된 부분이 고쳐졌음을 확인할 수 있습니다. 이번에는 다른 숫자 몇 개를 넣어보고 15 를 입력해보겠습니다.
- 답이 틀리면 계속 입력을 하라는 문구가 나오고 15 를 입력하면
"Bingo !" 라는 문장이 출력되고 프로그램이 종료가 됩니다.