티스토리 뷰

반응형

 

C언어 기초 Chapter 08: 조건문과 흐름 제어 (if / switch / break & continue / goto)


08-1. 조건식 실행과 흐름의 분기 (if문)

기본 구조

if (조건식) {
    실행문;
}

예제:

#include <stdio.h>
int main(void) {
    int age = 20;
    if (age >= 18) {
        printf("성인입니다.\n");
    }
    return 0;
}

if ~ else

if (조건식) {
    실행문1;
} else {
    실행문2;
}

예제:

int num = -5;
if (num > 0) {
    printf("양수\n");
} else {
    printf("음수 또는 0\n");
}

다중 if ~ else if ~ else

if (score >= 90) printf("A\n");
else if (score >= 80) printf("B\n");
else if (score >= 70) printf("C\n");
else printf("F\n");

08-2. 반복문과 함께 쓰는 흐름 제어 (continue & break)

break

  • 반복문 즉시 종료
for (int i = 1; i <= 10; i++) {
    if (i == 5) break;
    printf("%d ", i);
}

👉 출력: 1 2 3 4


continue

  • 반복문의 나머지 부분 건너뛰고 다음 반복으로 이동
for (int i = 1; i <= 5; i++) {
    if (i == 3) continue;
    printf("%d ", i);
}

👉 출력: 1 2 4 5


08-3. switch문과 선택적 실행, 그리고 goto문

switch문 기본 구조

switch (변수) {
    case 값1:
        실행문;
        break;
    case 값2:
        실행문;
        break;
    default:
        실행문;
}

예제:

#include <stdio.h>
int main(void) {
    int menu = 2;
    switch (menu) {
        case 1:
            printf("메뉴1 선택\n");
            break;
        case 2:
            printf("메뉴2 선택\n");
            break;
        default:
            printf("잘못된 입력\n");
    }
    return 0;
}

goto문

  • 특정 레이블로 강제 이동
  • 일반적으로 추천하지 않음 (코드 가독성 저하)

예제:

#include <stdio.h>
int main(void) {
    int n = 1;
    if (n == 1) goto LABEL;

    printf("이 문장은 건너뜀\n");

LABEL:
    printf("goto로 이동!\n");
    return 0;
}

핵심 정리 ✅

  • if문: 조건 분기 기본
  • break: 반복문 즉시 종료
  • continue: 이번 반복 건너뛰기
  • switch문: 값에 따른 선택 실행 (정수/문자에 적합)
  • goto문: 가급적 사용 지양, 단순 탈출용으로 제한적 사용

연습 문제 ✍️

  1. 정수 하나를 입력받아 짝수/홀수 판별 프로그램 작성하기 (if문 활용)
  2. 1~10까지 출력하다가 5에서 멈추기 (break 활용)
  3. 사용자에게 메뉴 번호(1:저장, 2:불러오기, 3:종료)를 입력받아 해당 기능 출력하기 (switch 활용)
  4. 점수를 입력받아 학점(A~F) 출력하기 (if ~ else if 또는 switch 사용)

 

 

👉 연습문제 정답은?▼

 

Chapter 08 연습문제 풀이


1) 정수 하나를 입력받아 짝수/홀수 판별 프로그램 (if문)

#include <stdio.h>
int main(void) {
    int num;
    printf("정수를 입력하세요: ");
    scanf("%d", &num);

    if (num % 2 == 0)
        printf("%d는 짝수입니다.\n", num);
    else
        printf("%d는 홀수입니다.\n", num);

    return 0;
}

2) 1~10까지 출력하다가 5에서 멈추기 (break 활용)

#include <stdio.h>
int main(void) {
    for (int i = 1; i <= 10; i++) {
        if (i == 5) break;  // 5에서 반복 종료
        printf("%d ", i);
    }
    return 0;
}

👉 출력: 1 2 3 4


3) 메뉴 번호 입력받아 기능 출력 (switch 활용)

#include <stdio.h>
int main(void) {
    int menu;
    printf("메뉴 선택 (1: 저장, 2: 불러오기, 3: 종료): ");
    scanf("%d", &menu);

    switch (menu) {
        case 1:
            printf("저장 기능 실행!\n");
            break;
        case 2:
            printf("불러오기 기능 실행!\n");
            break;
        case 3:
            printf("프로그램 종료!\n");
            break;
        default:
            printf("잘못된 입력입니다.\n");
    }
    return 0;
}

4) 점수를 입력받아 학점(A~F) 출력 (if ~ else if)

#include <stdio.h>
int main(void) {
    int score;
    printf("점수를 입력하세요: ");
    scanf("%d", &score);

    if (score >= 90)
        printf("학점: A\n");
    else if (score >= 80)
        printf("학점: B\n");
    else if (score >= 70)
        printf("학점: C\n");
    else if (score >= 60)
        printf("학점: D\n");
    else
        printf("학점: F\n");

    return 0;
}

 

반응형