Prosto
do while문(반복문3) 이해, 예제 -C언어 본문
'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문의 이해에 도움이 됐다면 좋겠습니다.
질문은 댓글이나 메일로 따로 연락주시면 시간되는 때 답변드리겠습니다. ( 연락 )
'Programing > C Programing' 카테고리의 다른 글
파일 입출력 오류 / 해결 방법 (3) | 2016.09.20 |
---|---|
파일 입출력(FILE*) 이해, 예제 -2 -C언어 (2) | 2016.09.19 |
while문(반복문2) 이해, 예제 -C언어 (10) | 2016.09.17 |
파일 입출력(FILE*) 이해, 예제 -1 -C언어 (12) | 2016.09.17 |
for문(반복문) 이해, 예제 -C언어 (4) | 2016.09.15 |