제어문
📌 조건문
C 언어에서 조건문은 특정 조건에 따라 코드의 실행 흐름을 제어하는 데 사용됩니다. 대표적인 조건문으로는 if 문과 switch 문이 있으며, 이 두 가지를 적절히 활용하면 프로그램의 흐름을 유연하게 제어할 수 있습니다.
✔️ if 문
if 문은 가장 기본적인 조건문으로, 주어진 조건이 참일 때만 특정 코드를 실행합니다. 필요에 따라 else 나 else if 구문을 함께 사용해 다양한 조건을 처리할 수 있습니다.
int score = 85;
if (score >= 90)
{
printf("A 학점입니다.\n");
}
else if (score >= 80)
{
printf("B 학점입니다.\n");
} else
{
printf("C 학점 이하입니다.\n");
}
위 코드에서는 변수 score의 값에 따라 다른 메시지를 출력합니다. 조건은 위에서부터 순차적으로 평가되며, 첫 번째로 참이 되는 조건이 실행된 후 나머지는 무시됩니다.
✔️ switch 문
switch 문은 변수의 값에 따라 여러 경우(case)를 나누어 실행할 수 있는 구조입니다. if 문보다 코드가 더 깔끔하고 가독성이 좋아지는 장점이 있습니다.
int day = 3;
switch (day)
{
case 1: printf("월요일입니다.\n");
break;
case 2: printf("화요일입니다.\n");
break;
case 3: printf("수요일입니다.\n");
break;
default: printf("주중이 아닙니다.\n");
}
break 문은 각 case가 실행된 후 switch 문을 빠져나오게 해 줍니다. 만약 break를 생략하면 다음 case로 계속 실행됩니다(이를 "fall-through"라고 함).
🔁 반복문
반복문은 특정 조건이 참인 동안 계속해서 동일한 코드를 실행합니다. 반복문은 프로그래밍에서 매우 자주 사용되며, 대표적으로 for, while, do-while 문이 있습니다.
✔️ for 문
for 문은 반복 횟수가 명확할 때 사용하면 편리한 구조입니다. 초기화, 조건, 증감 부분이 한 줄에 있어 한눈에 반복 흐름을 이해할 수 있습니다.
for (int i = 0; i < 5; i++)
{
printf("i의 값: %d\n", i);
}
초기화는 한 번만 실행되고, 조건이 참일 동안 반복하며, 반복이 끝날 때마다 증감식을 수행합니다.
✔️ while 문
while 문은 조건이 참일 때 반복을 수행하며, 조건을 먼저 검사하므로 조건이 처음부터 거짓이면 한 번도 실행되지 않을 수 있습니다.
int i = 0;
while (i < 5)
{
printf("i의 값: %d\n", i);
i++;
}
✔️ do-while 문
do-while 문은 조건을 나중에 검사하기 때문에 조건이 거짓이라도 처음 한 번은 무조건 실행됩니다.
int i = 0;
do {
printf("i의 값: %d\n", i);
i++;
}
while (i < 5);
입력 값이 유효한지를 검사하는 루프나, 최소 한 번은 실행해야 하는 상황에 유용합니다.
🧭 흐름 제어문
반복문이나 조건문 안에서 실행 흐름을 제어하고 싶을 때 사용할 수 있는 문법들이 있습니다. 대표적으로 break, continue, goto 문이 있습니다.
✔️ break 문
break 문은 반복문 또는 switch 문을 즉시 종료하고 바깥으로 빠져나올 때 사용됩니다.
for (int i = 0; i < 10; i++)
{ if (i == 3) { break; }
printf("i: %d\n", i);
}
위 코드는 i가 3이 되는 순간 반복문이 종료되어 더 이상 실행되지 않습니다.
✔️ continue 문
continue 문은 이번 반복을 건너뛰고, 다음 반복을 진행하도록 만듭니다. 특정 조건에서 일부 코드만 생략하고 반복을 계속할 때 유용합니다.
for (int i = 0; i < 5; i++)
{ if (i == 2) { continue; }
printf("i: %d\n", i);
}
i가 2일 때만 printf가 실행되지 않고 나머지는 정상 실행됩니다.
✔️ goto 문
goto 문은 코드 내 특정 라벨로 즉시 이동합니다. 구조화된 프로그래밍에서는 권장되지 않지만, 아주 드물게 예외 처리나 긴 루프 탈출 등에 사용되기도 합니다.
int i = 0;
start: if (i == 3) { goto end; }
printf("i: %d\n", i);
i++;
goto start;
end: printf("종료합니다.\n");
goto 문은 사용을 신중히 고려해야 하며, 일반적으로 break나 return으로 해결할 수 있는 상황에서는 사용하지 않는 것이 좋습니다.
'Programming' 카테고리의 다른 글
| C 고급 포인터 (75) | 2025.08.12 |
|---|---|
| C 동적 메모리 할당 (80) | 2025.08.11 |
| C 연산자 (74) | 2025.08.09 |
| C 변수와 자료형 (57) | 2025.08.08 |
| C 기본 문법 (43) | 2025.08.07 |