티스토리 뷰
2021.10.24 - [코딩 공부/C 언어] - [C언어 기초] 반복문 while
오늘은 반복문 while과 함께 보면 좋은 do ~ while에 대해서 알아보려고 합니다.
1. do ~ while과 while의 차이점
이전에 배웠던 while문은
while (조건) { } 에서
while 옆의 () 소괄호 속에 쓴 조건을 만족하는 동안 실행하는 반복문이었어요.
그렇기 때문에 while문 속의 종속문장을 실행하려면 처음부터 while문의 조건을 만족해야만
내가 원하는 횟수만큼 동작을 반복시키는 것이 가능했어요.
하지만 살다 보면 어떤 행동을 일단 한 번은 하고 난 다음에 내가 정한 조건을 만족하면 그 행동을 한 번 더 하고
아니면 그만했으면 좋겠을 때도 있잖아요.
그럴 때 쓰면 좋은 것이 do ~ while문입니다.
2. do ~ while
do ~ while문은 종속문장을 무조건 한 번은 실행한 다음 조건을 평가해서 종속문장을 더 실행할지 말지 결정합니다.
do
{
종속문장;
} while ( 조건식 );
다음문장;
기본적인 형태는 위와 같습니다.
#include<stdio.h>
void main()
{
int Num = 10;
do
{
printf("%d", Num);
Num++;
} while (9 >= Num);
}
비주얼 스튜디오에 위 문장을 쓰고 실행해 볼까요?
그러면 위와 같이 10 하나만 출력하고 프로그램이 종료되는 것을 볼 수 있습니다.
처음에 Num은 10이었고 do ~ while문을 사용해서 일단 한 번은 출력하라고 했더니 Num의 초기값인 10은 출력했습니다.
하지만 출력 후에 Num을 증가시켰기 때문에 Num은 11이 되어서 아래 while (9 >= Num) 의 조건은 만족하지 못 하게 되어서 더 이상 실행되지 않고 반복문이 종료되었습니다.
만약 Num이 10에서 0이 될 때까지 출력하고 싶다고 Num++; 를 Num--; 로 바꿔준다면 10, 9, 8, ... 이런 식으로 숫자를 계속 출력하겠지만 종료 조건이 설정되지 않았기 때문에 무한 루프에 빠져 버릴 것입니다. (궁금하시면 한 번 해 보세용...ㅎㅎ)
반복문을 쓸 때엔 무한 루프에 빠지지 않도록 종료 조건을 정확하게 설정해 주는 것을 잊지 마세요~
#include<stdio.h>
void main()
{
int Num = 10;
do
{
printf("%d\n", Num);
Num--;
} while (0 <= Num);
}
위와 같이 조건을 설정해 준다면 Num을 감소시켜도 0이 될 때까지만 숫자를 출력하고 종료될 것입니다.
바로 이렇게요~~
여기까지 반복문 do ~ while에 대해 알아봤습니다.
while과 기본적인 틀은 같은데 조건이 하나만 추가된 것이라서
while문을 이해하셨으면 do ~ while문도 어렵지 않으실 것입니다.
그럼 다음 포스트에서는 반복문 for에 대해서 알아보겠습니다.
예습복습 열심히 하시고 다음 포스트에서 만나요~~
'코딩 공부 > C 언어' 카테고리의 다른 글
[C언어 기초] 반복문 for, break와 continue (0) | 2021.11.07 |
---|---|
[C언어 기초] 조건 연산자 ? a : b (0) | 2021.10.29 |
[C언어 기초] 반복문 while (0) | 2021.10.24 |
[C언어 기초] 조건문 switch (0) | 2021.10.16 |
[C언어 기초] if ~ else와 else if (0) | 2021.10.10 |
- Total
- Today
- Yesterday
- 컴퓨터공부
- dp
- 알고리즘
- 캐나다
- 하드웨어
- 깊이우선탐색
- BFS
- 아이패드
- 영어공부
- hackerrank
- 백준
- 캐나다생활
- 컴퓨터
- 기초
- 문제풀이
- c++
- 컴퓨터사이언스
- 다이나믹프로그래밍
- greedy
- 스위프트플레이그라운드
- 너비우선탐색
- DFS
- 해커랭크
- 코딩공부
- 프로그래밍
- C언어기초
- 애플
- 그리디
- 프로그래머스
- c언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |