본문 바로가기

Programming/C Language

Do ~ while 문 ?

이번엔 Do ~ while문에 대해 설명하도록 하겠다.
do while 또한 while문과 같이 반복문이다. 그리고 비슷한 성격을 가지고 있다.
다만 , 반복의 조건을 검사하는 시점에 차이가 있다!


do~while문의 기본구성


do~while문은 while문과 달리 반복조건을 뒤에서 검사한다.
이렇듯 반복조건을 뒤에서 검사하기때문에 반복조건이 만족하지 못하면 한번도 실행하지 않는 while문과는 달리
반복영역을 최소한 한번은 반복하도록 되어있는 구조이다.


예시를 살펴보자


int num=4;


do

{

printf("Hello World! \n");

num++;

}while(num<3);                        이와같이 do~while문을 이용한다.

do다음에 등장하는 중괄호가 반복영역이고 , 중괄호에 이어 등장한 것이 반복조건이다.
처음 num변수에 4를 저장하였다 , 그리고 반복영역을 한번 실행한 후 반복조건인 (num<3)을 검사한다.
당연히 반복조건에 부합하지 않으니 , 더이상 반복하진 않는다.

자 그럼 do~while문과 관련하여 결론을 내려보자.

"while문과는 반복조건의 검사위치가 다르며 , 이로 인하여 반복영역을 최소한 한번은 실행한다는점이 while문과의 유일하고 명확한 차이다."


이러한 두 반복문의 비슷한 성격때문에 while문이 do~while문으로 , do~while문이 while문으로 대체될 수 있다.

앞서 예제로 들었던 구구단을 예로 들어보겠다.



이와 같이 대체가 가능하다 . 

그럼 이쯤에서 궁금한점이 하나 생길것 같다..(안궁금하다면 그냥 보자ㅠㅠ)

그럼 언제 while문을 쓰고 언제 do~while문을 쓰는건가?
나 또한 처음 do~while문을 배웠을때 매우 궁금했다.
일반적인 경우에는 while문을 이용한다 , 반복의 조건이 앞 부분에 위치해서 코드를 작성하기도 , 이해하기도 용이하기 때문이다.
하지만 " 반복영역이 최소 한번은 실행되어야 하는 경우" 에는 do~while문이 더욱 자연스럽다.

여러 while문 예제들과 do~while문 예제들을 서로 대체해보며 각 반복문의 성격을 이해해보자

'Programming > C Language' 카테고리의 다른 글

if 문 그리고 else  (0) 2017.10.30
For 문 ?  (0) 2017.10.30
While문 ?  (0) 2017.10.30
서식문자 정리  (0) 2017.10.30
아스키(ASCII)코드 ?  (0) 2017.10.30