C - 루프: 효율적인 프로그래밍의 관문

안녕하세요, 야심 찬 프로그래머 여러분! 오늘 우리는 C 언어의 루프 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 여러분이 프로그래밍 경험을 혁명적으로 바꿔 놓을 이 기본 개념을 안내해 드리게 되어 기쁩니다.

C - Loops

루프는 무엇이고 왜 필요한가요?

"저는 프로그래밍을 사랑해요"를 100번 쓰는 작업을 상상해 보세요. 지루하지 않나요? 이럴 때 루프가 구원자가 됩니다! 루프는 코드 블록을 반복적으로 실행하여 시간을 절약하고 프로그램을 더 효율적으로 만들어줍니다.

C 루프 문의 흐름도

코드로 들어가기 전에, 루프가 어떻게 작동하는지 시각화해 보겠습니다:

┌─────────────┐
│ 시작 루프  │
└──────┬──────┘
│
┌──────▼──────┐
│  조건 체크  │
└──────┬──────┘
│
┌───────┴───────┐
No │               │ Yes
│   ┌───────────▼─────────┐
│   │  루프 본문 실행  │
│   └───────────┬─────────┘
│               │
│   ┌───────────▼─────────┐
│   │  카운터 업데이트  │
│   └───────────┬─────────┘
│               │
┌───▼───┐           │
│  종료  │◄──────────┘
└───────┘

이 흐름도는 루프의 기본 구조를 보여줍니다. 조건을 체크한 후, 그 조건이 참이면 루프 본문을 실행하고 카운터를 업데이트합니다. 그런 다음 조건을 다시 체크합니다. 이 과정이 조건이 거짓이 될 때까지 계속됩니다.

C에서의 루프 유형

C는 우리에게 세 가지 주요 루프 유형을 제공합니다. 각각을 탐구해 보겠습니다:

1. For 루프

for 루프는 정확히 몇 번 반복할지 알 때 완벽합니다.

#include <stdio.h>

int main() {
for (int i = 1; i <= 5; i++) {
printf("반복 %d\n", i);
}
return 0;
}

이 예제에서 우리는 반복 번호를 5번 출력합니다. 이를 쪼개보면:

  • int i = 1: 카운터 초기화
  • i <= 5: 이 조건이 참인 동안 계속
  • i++: 각 반복 후 카운터 증가

출력:

반복 1
반복 2
반복 3
반복 4
반복 5

2. While 루프

while 루프는 조건이 참인 동안 반복할 때 유용합니다.

#include <stdio.h>

int main() {
int count = 1;
while (count <= 5) {
printf("카운트는: %d\n", count);
count++;
}
return 0;
}

여기서 우리는 1에서 5까지 카운트합니다. 루프는 count이 5 이하일 때 계속됩니다.

출력:

카운트는: 1
카운트는: 2
카운트는: 3
카운트는: 4
카운트는: 5

3. Do-While 루프

do-while 루프는 while 루프와 유사하지만, 루프 본문이 최소한 한 번은 실행되도록 보장합니다.

#include <stdio.h>

int main() {
int num = 1;
do {
printf("%d 제곱은 %d\n", num, num * num);
num++;
} while (num <= 5);
return 0;
}

이 프로그램은 1에서 5까지의 숫자의 제곱을 계산하고 출력합니다.

출력:

1 제곱은 1
2 제곱은 4
3 제곱은 9
4 제곱은 16
5 제곱은 25

C 루프의 부분

C의 모든 루프는 세 가지 주요 부분으로 구성됩니다:

  1. 초기화: 루프 변수를 설정하는 부분
  2. 조건: 루프가 계속되는지 여부를 결정하는 테스트
  3. 업데이트: 각 반복 후 루프 변수를 변경하는 방법

C에서의 루프 제어 문

때로는 우리는 루프에 대한 더 많은 제어가 필요합니다. C는 이를 위한 두 가지 특별한 문을 제공합니다:

1. Break 문

break 문은 루프를 사전에 종료합니다.

#include <stdio.h>

int main() {
for (int i = 1; i <= 10; i++) {
if (i == 6) {
printf("루프를 i = %d에서 종료\n", i);
break;
}
printf("i = %d\n", i);
}
return 0;
}

이 루프는 i가 6에 도달할 때 종료합니다.

출력:

i = 1
i = 2
i = 3
i = 4
i = 5
루프를 i = 6에서 종료

2. Continue 문

continue 문은 현재 반복의 나머지 부분을 건너뛰고 다음 반복으로 이동합니다.

#include <stdio.h>

int main() {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
printf("반복 %d 건너뛰기\n", i);
continue;
}
printf("i = %d\n", i);
}
return 0;
}

이 루프는 i가 3일 때 출력을 건너뛰습니다.

출력:

i = 1
i = 2
반복 3 건너뛰기
i = 4
i = 5

C에서의 무한 루프

무한 루프는 결코 끝나지 않는 루프입니다. 일반적으로 실수지만, 특정 경우에는 이러한 행동을 원할 수 있습니다.

#include <stdio.h>

int main() {
while (1) {
printf("이 문구는 영원히 출력됩니다!\n");
}
return 0;
}

무한 루프에 주의하세요! 제대로 처리하지 않으면 프로그램이崩溃될 수 있습니다.

결론

축하합니다! 여러분은 C 루프의 세계로 첫 걸음을 뗐습니다. 연습이 완벽을 만듭니다. 자신만의 루프를 작성해 보세요, 다양한 조건을 실험하고, 곧 루프를 마스터하실 것입니다!

여기서 다루었던 루프 유형의 빠른 참고 표입니다:

루프 유형 문법 가장 사용할 때
For for (init; condition; update) { ... } 정확한 반복 횟수를 알 때
While while (condition) { ... } 조건이 참인 동안 반복할 때
Do-While do { ... } while (condition); 루프 본문을 최소한 한 번은 실행해야 할 때

Happy coding, 여러분의 루프가 항상 원하는 대로 종료되길 바랍니다!

Credits: Image by storyset