do while 문은 while 문과 약간 다르다.
먼저 다른점을 설명하기 전에
do while 문의 예시를 보자
예시는 1부터 10까지 출력하는 예시로 하겠다.
#include <stdio.h>
int main()
{
int number = 1;
do
{
printf("%d\n", number);
number++;
} while (number <= 10);
return 0;
}
int number = 1; 넘버에 1을 대입한다.
do 블럭안의 내용을 실행한다.
{ 블럭의 시작
printf("%d\n", number); 넘버의 값을 출력한다.
number++; 넘버를 1 증가 시킨다.
} 블럭의 끝
while(number<=0); while(조건); 조건이 참이면 블럭의 시작으로 가서 블럭안의 내용을 실행한다.
실행 결과를 보면 비슷한 코드인 while 문과 do while문의 차이는 없어 보인다.
하지만, 다음과 같은 코드를 보면 분명한 차이를 느낄 수 있다.
#include <stdio.h>
int main()
{
int number = 100;
while(number <= 10)
{
printf("%d\n", number);
number++;
}
return 0;
}
위 코드는 while(조건) 에서 조건이 맞지 않기 때문에(넘버가 100이라서)
코드 블럭에 들어가지 않아서 애초에 아무것도 출력되지 않는다.
#include <stdio.h>
int main()
{
int number = 100;
do
{
printf("%d\n", number);
number++;
} while (number <= 10);
return 0;
}
하지만, 이 코드를 봐라, do 문에 의해 일단 코드 블럭 안의 내용을 실행시키고,
다음 while(조건) 문에서 조건에 맞지 않으므로 블럭의 시작으로 가지 않고 do while 문을 벗어난다.
결국 한번은 출력된다.
do while 문과 while 문의 차이는 이것이다.
무조건 한번은 실행되느냐(do while문)
조건에 맞지 않으면 한번도 실행되지 않느냐(while문)의 차이.
참고) do while문도 코드 블럭안에서 break; 문을 사용하여
블럭을 벗어날 수 있다.
'C언어(2020년)' 카테고리의 다른 글
14. 배열 (0) | 2020.11.02 |
---|---|
13. for 문 (0) | 2020.11.02 |
11. while 문 (0) | 2020.11.02 |
10. switch case 문 (0) | 2020.11.02 |
9. ASCII 코드 (0) | 2020.11.02 |