Prosto

do while문(반복문3) 이해, 예제 -C언어 본문

Programing/C Programing

do while문(반복문3) 이해, 예제 -C언어

Prosto 2016. 9. 17. 22:39

'do! 일단 한번 해라. 그리고 while문을 진행하라'

 

do while문은 위의 말 그대로 일단 한번은 { } 중괄호 안의 내용을 실행하고,

 그 후 while 조건을 확인하고 반복하는 것입니다.

 

코드에서는 while문과는 어떤 차이가 있는지 볼까요?

do{

    //실행내용(반복될 내용)

}while(조건);

입니다.

do while의 경우 문법에서도 약간의 차이가 보이실 겁니다.

'{' 앞에는 do가 위치하고. '}' 뒤에는while(조건);이 위치하죠.

do로 일단 실행한 후 while에 다다르면 원래의 while문 처럼 검사 - 실행 - 검사 - 실행 - ...을 반복해가는 겁니다.

 

그러면 무조건 처음에 "안녕하세요"를 출력하고.

그 후 입력된 결과에 따라 출력하거나 반복을 종료해볼까요?

 

int selectNum;

do{

    printf("안녕하세요\n");

    scanf_s("%d", &selectNum);

}while(selectNum != 0);

 

 

while문과 차이가 느껴지시나요?

처음에 비교도 하지 않고 출력을 먼저한 후 while(조건);을 만나 검사를 한 후 반복을 진행했죠?

 

만약 이부분을 while문으로 만들었다면,

처음에 무조건 출력한다는 부분때문에 이렇게 만들어졌겠죠?

int selectNum;

printf("안녕하세요\n");

scanf_s("%d", &selectNum);

while(selectNum != 0){

    printf("안녕하세요\n");

    scanf_s("%d", &selectNum);

}

 이렇듯 처음에 한번은 무조건 그냥 실행하고 싶다면

do while문이 사용에 더 유리한 것입니다.

 

(나머지는 while문과 같으니 혹 while문이 궁금하시다면 클릭하여 새창에서 확인해보세요.)

 

 

그렇다면 do while문도 예제를 봤으니 문제를 풀어봅시다!

 

문제1.do while문을 이용하여 숫자를 입력받아 해당 숫자가 홀수면 종료되는 프로그램을 만드시오.

 

(출력 결과 예)

 

 

문제2.do while문을 이용하여 숫자 두 개(num1, num2)를 각각 입력받고

그 수를 비교하여 서로 같을 때까지 계속 다시 입력받는 프로그램을 만드시오.

 

(출력 결과 예)

 

 

문제3.do while문을 이용하여 입력한 숫자를 모두 더해주는 프로그램을 만들어보시오.

(단 0을 입력시 입력을 그만 받고 합계를 나타내세요. - 출력 결과를 참고하세요.)

 

(출력 결과 예)

 

 

do while 관련하여 문제를 풀어봤습니다. 결과는 모두 잘 나왔나요?

그럼 이제 제가 작성한 코드와 실행 결과를 올리겠습니다.

비교해보고 참고하세요.

 

 

-1번 문제-

do while문의 조건 부분인 (num%2 != 0)은 !(num%2)으로도 쓸 수 있습니다.

0은 false[거짓] / 1과 그 외(-1, 4, 1041 등) 모두 true[참]라고 보기 때문입니다.

(num%2) 나머지를 구하여 1이면 -> 원래는 참이지만

거기에 !연산으로 부정해주면 반대의 결과가 됩니다 -> 거짓으로 바뀝니다.(조건 만족X)

 

 

 

-2번 문제-

 

 

 

-3번 문제-

 

 

지금까지 do while문에 대하여 알아봤습니다.

while문과 어떻게 다른 것인지부터 예제, 문제까지 풀어봤습니다.

do while문의 이해에 도움이 됐다면 좋겠습니다.

 

질문은 댓글이나 메일로 따로 연락주시면 시간되는 때 답변드리겠습니다. ( 연락 )

Comments