[C언어] do while 문

ET의 공부/C언어|2019. 12. 11. 22:08

안녕하세요. 이번 포스팅은 do while문의 사용방법에 대해 포스팅해보겠습니다. 먼저 읽어주셔서 감사합니다.

 

 

do while 문은 탈출 조건 루프입니다. 루프를 한번 실행한 후 더 실행할 것인지 여부를 판별합니다. 따라서 표현식이 거짓일 경우 

루프 자체가 실행이 되지 않는 while문과 다르게 무조건 한 번은 문장이 실행되게 됩니다.

 

do { code }

while(표현식);

 

do while문은 하나의 문장으로 간주되므로 while 끝에 ;(세미클론)이 붙는 것에 유의하여야 합니다.

 

그럼 while문과 do while문이 어떻게 다른지 예제로 살펴보겠습니다.

 

#include <stdio.h> 

int main (void)
{
    int PW = 123;
    int inputPW = 0;
    while(PW != inputPW){
        printf("비밀번호 입력:");
        scanf("%d",&inputPW);
    }
 
    return 0;
}

 

위의 코드는 비밀번호를 입력받아 비밀번호가 입력될때 비밀번호가 맞을 때까지 반복하는 코드입니다.

이 예제를 do while문으로 바꿔보면

 

#include <stdio.h>
 
int main (void)
{
    int PW = 123;
    int inputPW = 0;
    do{
        printf("비밀번호 입력:");
        scanf("%d",&inputPW);
    }
    while(PW != inputPW);
 
    return 0;
}

 

위와 같게 됩니다. do while은 예제를 보더라도 반복 전 무조건 한번 코드가 실행되는 것을 보실 수 있습니다.

그런데 위 while예제를 보더라도 똑같은 실행결과가 나오게 됩니다. 

 

하지만

#include <stdio.h>
 
 
int main (void)
{
    int PW = 123;
    int inputPW = 123;
 
    while(PW != inputPW){
        printf("비밀번호 입력:");
        scanf("%d",&inputPW);
    }
    
    return 0;
}

 

조금 억지가 있지만     int PW = 123; ,int inputPW = 123; 패스워드와 입력받는 패스워드가 같게 된다면 비밀번호를 물어보지

않고 문장이 끝나게 되고 while문 앞에 패스워드 입력을 요청하는 코드를 한 번 더 입력해야 정상적으로 동작하게 됩니다.

 

물론 이러한 상황이 많지 않겠지만 do while문은 탈출 조건 루프로 한 번쯤 숙지하셔도 좋을 것 같습니다.

 

감사합니다.

댓글()