반응형
do-while문은 안에 있는 코드를 조건식과 상관없이 한 번 무조건 실행됩니다.
그 후에 조건식을 확인하고 반복 여부가 결정된다.
그렇기에 아래 코드는 i < 0 이지만 한 번 printf 가 실행되고
조건문에 걸려 반복문을 빠져나오게 된다.
#include <stdio.h>
int main()
{
int i = 0;
do
{
printf("안녕 세상아 [%d]\n", i);
i++;
} while (i < 0);
}
중괄호 안에서 변화식을 조건문에 맞춰서 작성하지 않으면
반복이 끝나지 않고 무한 루프 되므로 주의!
위 코드를 while 문으로 변경한다면 아래와 같다.
물론 반복문 자체가 실행되기 위해서는 조건문 수정이 필요하다. 😒
#include <stdio.h>
int main()
{
int i = 0;
printf("안녕 세상아 [%d]\n", i);
while (i < 0)
{
printf("안녕 세상아 [%d]\n", i);
i++;
}
}
활용
Q) 그렇다면 do-while문은 어떻게 활용할 수 있을까?
ex) 1~9 사이의 랜덤한 숫자를 사용하고 싶다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int mode = (rand() % 9) + 1;
printf("mode = %d\n", mode);
}
(rand() % 9) + 1 와 같이 나머지 연산(%)을 이용할 수도 있지만,,
아래와 같이 구현도 가능한 것이다.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int mode;
do
{
mode = rand() % 10;
} while (mode == 0);
printf("mode = %d\n", mode);
}
mode 값을 랜덤하게 하되 0 으로 초기화된 경우에는
아닐 때까지 다시 랜덤하게 초기화하는 것이다.
반응형
'프로그래밍 언어 > C 언어' 카테고리의 다른 글
[C/C++] memmove() 함수 사용과 예제 (0) | 2021.11.28 |
---|---|
[C/C++] memcpy 사용 방법 (0) | 2021.11.24 |
[C] printf 서식 (0) | 2021.09.14 |
[C/C++] memset 사용시 주의사항 (0) | 2021.09.11 |
[C / C++] memset 함수 사용 (0) | 2021.09.11 |
댓글