8000 ➕ continue 설명 추가 · paxbun/c-cpp-tutorial@665c686 · GitHub
[go: up one dir, main page]

Skip to content

Commit 665c686

Browse files
committed
➕ continue 설명 추가
1 parent 11004a5 commit 665c686

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

7-control-flow/README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -880,6 +880,85 @@ int main()
880880

881881
프로그램이 멈추지 않고 끝나는 것을 확인할 수 있습니다.
882882

883+
## continue문(continue statement)
884+
885+
continue문은 반복문 안에서 **한 번의 반복**을 종료할 수 있는 문장입니다. 한 번의 반복이라는 말이 모호하다고 느끼실 것 같은데, 정확히 어떤 의미인지 밑에서 설명하겠습니다. continue문은 break문 처럼 사용합니다.
886+
887+
```
888+
continue;
889+
```
890+
891+
continue문도 식이 필요하지 않습니다.
892+
893+
```c
894+
#include <stdio.h>
895+
896+
int main()
897+
{
898+
int i = 0;
899+
while (i < 5)
900+
{
901+
printf("%d ", i);
902+
continue;
903+
++i;
904+
}
905+
}
906+
```
907+
```
908+
0 0 0 0 0 0 ...
909+
```
910+
911+
continue문을 사용하니 `continue;` 밑에 있던 `++i`가 실행되지 않고 있습니다. 코드를 자세히 분석하면 다음과 같습니다.
912+
913+
```
914+
프로그램이 시작했을 때,
915+
1. 적절한 공간을 `i`라고 이름짓고 `0`을 집어넣습니다.
916+
2. `i < 5`의 결과가 1이 아니라면 while문을 종료합니다.
917+
3. `i`에 들어있는 값을 출력합니다.
918+
4. 2로 이동합니다.
919+
5. `i`를 `1` 증가시킵니다.
920+
6. 2로 이동합니다.
921+
```
922+
923+
4번에서 2번으로 이동한다는 것을 알 수 있습니다.
924+
925+
즉, 모든 반복문은 `조건식 실행 -> 반복할 문장 수행`의 형태를 띠는데, continue문을 사용하면 `반복할 문장 수행`과정을 중지하고 다시 `조건식 실행`과정으로 돌아갑니다. 그래서 위 예제에서 while문 대신에 do-while문을 사용해도 비슷한 일이 일어납니다.
926+
927+
for문에서는 약간 다릅니다. 다음 예제를 봐주세요.
928+
929+
```c
930+
#include <stdio.h>
931+
932+
int main()
933+
{
934+
for (int i = 0; i < 3; ++i)
935+
{
936+
printf("%d ", i);
937+
continue;
938+
printf("foo ");
939+
}
940+
}
941+
```
942+
```
943+
0 1 2
944+
```
945+
946+
중간에 있는 `continue;`에서 바로 조건식 실행 과정으로 넘어갔다면 `++i`가 실행되지 않았을 때, `i`가 잘 증가하는 모습을 확인할 수 있습니다. 이처럼 for문 내에서 continue문을 사용하면, 조건식 실행 과정이 아니라 반복식 실행 과정으로 넘어갑니다. 위 예제에서 `0 1 2 `가 출력된 과정을 분석해보겠습니다.
947+
948+
1. `0 < 3`의 결과는 참이기 때문에,
949+
2. `printf("%d ", i);`가 실행되어 `0 `이 출력됩니다.
950+
3. `continue;`가 실행되어 `<실행문>`이 종료됩니다.
951+
4. `++i;`가 실행되어 `i``1`이 됩니다.
952+
5. `1 < 3`의 결과는 참이기 때문에,
953+
6. `printf("%d ", i);`가 실행되어 `1 `이 출력됩니다.
954+
7. `continue;`가 실행되어 `<실행문>`이 종료됩니다.
955+
8. `++i;`가 실행되어 `i``2`가 됩니다.
956+
9. `2 < 3`의 결과는 참이기 때문에,
957+
10. `printf("%d ", i);`가 실행되어 `2 `가 출력됩니다.
958+
11. `continue;`가 실행되어 `<실행문>`이 종료됩니다.
959+
12. `++i;`가 실행되어 `i``3`이 됩니다.
960+
13. `3 < 3`의 결과는 거짓이기 때문에 for문이 종료됩니다.
961+
883962
## 무한 루프(infinite loop)
884963

885964
반복문은 조건식이 참이면 주어진 문장을 계속 수행합니다. 조건식으로 `1`이나 `2`, `20 < 100`처럼 결정값이 항상 참으로 간주되는 값인 식을 사용하면 반복문은 영원히 반복되게 됩니다. 이런 반복문을 `무한 루프(infinite loop)`라고 부릅니다. 방금 다룬 예제도 무한 루프를 사용한 프로그램입니다.

0 commit comments

Comments
 (0)
0