Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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)

AltStyle によって変換されたページ (->オリジナル) /