do ~ while문
do ~ while문은 while과 같은 기능을 하지만, 테스트 조건식이 끝에 있는 것만 다릅니다. 이 것이 의미하는 것은 무조건 1회를 실행하고 다음 실행을 할 것인지 여부는 테스트 조건식에 의해서 판단하겠다는 의미입니다.
do ~ while문의 기본 구조
do {
// 처리 로직
} while (테스트 조건식);
do ~ while문의 끝에는 문장의 끝 표시인 세미콜론( ; )을 반드시 붙여야 합니다.
예제). do ~ while문을 활용한 구구단 출력
#include <stdio.h>
void multipl_dowhile(void)
{
int i = 0, j = 0;
do {
i++;
j = 0;
do {
j++;
printf("%d x %d = %d\n", i, j, i * j);
} while (j < 9);
printf("\n");
} while (i < 9);
}
break 문과 continue문
break문은 do ~ while문의 실행을 중단하고 block을 빠져나가라는 용도로 사용하며, continue문은 continue 문 아래 부분은 skip하고 아래에 있는 while( 테스트 조건식)부분으로 이동하여 다시 실행할 지를 판단하고 참이면 block의처음부터 실행하라는 의미입니다
예제). 홀수면 무시하고, 짝수면 더하고, 0 이하면 종료
int idx;
long sum;
long arr[100];
......
idx = -1;
sum = 0;
do
{
idx++;
if(arr[idx] % 2 == 1) {
idx++;
continue;
} else if(arr[idx] <= 0) {
break;
}
sum += arr[idx];
} while (idx < 100);
위의 예제는 100 개의 데이터가 저장된 arr 변수에서 데이터가 짝수값이면 합산하고, 홀수이면 버리고, 0이하이면 while문을 종료하라는 예제입니다.
do ~ while은 우선 먼저 실행하고 2번째 실행부터는 아래에 있는 while(idx < 100) 부분이 참인지 여부를 확인한 후에 실행 여부가 결정이 됩니다.
continue문을 사용하면 continue 아래 로직은 실행이 되지 않고 아래에 있는 while(idx < 100) 부분으로 바로 이동하여 비교하게 됩니다.
break문은 do ~ while문의 실행을 끝내라는 의미입니다.
'C언어 > 문법' 카테고리의 다른 글
19. 포인터(Pointer) - 기초 (2) | 2019.11.20 |
---|---|
18. 배열 (配列: array) (0) | 2019.11.06 |
16. 반복문 (while) (2) | 2019.11.04 |
15. 반복문 (for) (2) | 2019.11.03 |
14. 조건문 (switch ~ case) (2) | 2019.11.02 |