nullvuild

Bloger @nullvuild

Created Date '2025/03/24 오전 12:40

Modified Date '2025/03/24 오전 11:29

#C언어 #제어문 #조건문 #반복문

프로그래밍에서 제어문은 코드의 실행 흐름을 바꾸는 문법이다. 단순히 위에서 아래로 흐르는 방식이 아니라, 조건에 따라 분기하거나, 특정 코드를 반복 실행하도록 할 수 있다.

C언어의 제어문은 크게 세 가지로 나뉜다: 조건문, switch문, 반복문.


1. 조건문: if, else if, else

if

if문은 주어진 조건이 참일 때만 코드 블록을 실행한다.

예를 들어, 변수 a가 양수일 때만 출력하고 싶다면 이렇게 작성한다.

if (a > 0) {
    printf("양수입니다.\n");
}

else

조건이 거짓일 때 실행할 코드가 있다면 else를 붙이면 된다.

if (a > 0) {
    printf("양수입니다.\n");
} else {
    printf("음수거나 0입니다.\n");
}

else if

조건이 여러 단계로 나뉠 경우에는 else if를 사용하여 조건을 순차적으로 검사할 수 있다. 아래는 성적에 따라 등급을 출력하는 예제다.

if (score >= 90) {
    printf("A 학점\n");
} else if (score >= 80) {
    printf("B 학점\n");
} else {
    printf("C 이하 학점\n");
}

위 코드는 score가 90 이상이면 "A 학점"을 출력하고, 그렇지 않으면 80 이상인지 또 확인한 뒤 "B 학점"을 출력한다. 그 외의 경우는 모두 "C 이하 학점"으로 처리된다.



2. switch문: 값에 따라 분기

switch문은 여러 개의 정수(또는 문자) 값 중 하나에 따라 분기할 때 사용된다. if문보다 코드가 깔끔해지는 장점이 있다.

int menu = 2;

switch (menu) {
    case 1:
        printf("새 게임 시작\n");
        break;
    case 2:
        printf("불러오기\n");
        break;
    case 3:
        printf("종료\n");
        break;
    default:
        printf("잘못된 선택\n");
}

casemenu 값이 해당 숫자일 때 실행되는 코드다.

주의할 점은 break를 꼭 써줘야 한다는 것. break가 없으면 다음 case의 코드까지 모두 실행되는 fall-through 현상이 발생한다.

default는 위의 어떤 case에도 해당하지 않을 때 실행되는 블록이다.


간혹, 강제로 fall-through를 발생시키기도 하지만, 참고만 해두자.


3. 반복문: 코드를 여러 번 반복 실행

같은 작업을 반복해야 할 때는 반복문을 사용한다.

C언어에는 for, while, do-while 세 가지 반복문이 있다.



for문: 반복 횟수가 명확할 때

for (int i = 0; i < 5; i++) {
    printf("%d\n", i);  //for문이 반복되면서 0 1 2 3 4 가 출력
}
  • 위 코드는 i가 0부터 4까지 1씩 증가하면서 총 5번 반복된다.
  • int i = 0 → 반복을 시작할 초기값
  • i < 5 → 반복을 계속할 조건
  • i++ → 반복이 끝날 때마다 실행되는 증감식

while문: 조건이 참인 동안 반복

int i = 0;
while (i < 5) {
    printf("%d\n", i);
    i++;
}

while문은 조건이 참일 경우 계속 반복한다. for문보다 유연하지만, 초기화나 증감식을 빠뜨리면 무한 루프가 발생할 수 있으니 주의해야 한다.


do-while문: 최소 1번은 실행

int i = 0;
do {
    printf("%d\n", i);
    i++;
} while (i < 5);

do-while은 조건이 나중에 검사되기 때문에, 조건이 처음부터 거짓이어도 최소 한 번은 실행된다는 점이 특징이다.


사실상 do를 제외하고 작성해도 된다. 다만, 이 코드들이 하나의 묶음이라는 것을 표현하기에는 용이하다.

4. break와 continue: 반복 제어

반복문 안에서는 흐름을 바꾸는 break와 continue를 사용할 수 있다.

for (int i = 0; i < 5; i++) {
    if (i == 2) continue; // i가 2일 땐 아래 코드 건너뛰고 다음 반복
    if (i == 4) break;    // i가 4일 땐 반복문 즉시 종료
    printf("%d\n", i);
}

이 코드는 다음과 같이 출력된다.

0  
1  
3

  • i == 2일 때는 printf를 건너뛰고 넘어간다.
  • i == 4일 때는 break로 반복을 종료한다.

제어문은 C언어를 이용해 "생각하는 코드"를 만들 수 있게 해주는 기본 도구다. 조건문으로 상황별 분기, 반복문으로 효율적인 반복 처리를 익혀두면, 이후 함수, 배열, 포인터 같은 개념들도 훨씬 자연스럽게 이해할 수 있게 된다.

Nullvuild

Nullvuild

@nullvuild

프로필