프로그래밍/C

[C언어] 7. 조건문 (if, if else, else if 문, switch 문) 응용 문제

록스타★ 2024. 10. 11. 14:32
반응형

서론

조건문은 프로그램이 특정 조건을 만족할 때 사용하는 것인데 프로그래밍 언어에서 너어어어어무 중요하다.

처음부터 잘 알고 가야한다.

 

 

1. if 문

- 조건식이 참이면 {} 안의 코드가 실행

 

 

if문 예시

- age라는 변수에 20을 설정하고 if()문 안에 조건식을 설정하여 age가 19세 이상이면 참이 되어 printf 함수가 실행 

그림(1) if문

 

 

출력

그림(2) 출력

 


2. if-else 문

- if문의 조건이 참이면 if문을 거짓이면 else{} 안의 코드를 실행

 

if-else 예시

- age가 19보다 크면 if문의 이 사람은 성인입니다.가 출력되고 19보다 작으면 else문의 이 사람은 미성년자입니다가 출력 된다.

그림(3) if-else 예시

 

출력
 > 위의 예제에서는 age가 20으로 성인이 출력되지만 아래는 age가 18이기 때문에 미성년자가 출력

그림(4) else 출력

 


3. else if 문

- 여러 조건을순차적으로 검사 가장 먼저 참이 되는 조건의 코드 실행

- 모든 조건이 거짓일 경우 else 코드 실행

 

else if문 예시

- score가 90이상이면 A등급 85이상이면 B+ 등급 그 외 점수는 B등급이 출력 

그림(5) else if 예시

 

출력

그림(6) 출력

 

 

4. Switch문

- switch문은 if-else문에 비해 가독성이 높고, 변수의 특정 값에 따라 실행해야 하는 코드가 명확할 때 유용

- 정수형, 문자형, 열거형(enum)과 같은 값만 사용 가능

- brake를 사용하지 않을 시 조건의 값 아래있는 case 모두 출력 

 

Switch문 예시

그림(7) Switch문 예시

 

출력

그림(8) 출력

 

응용 문제

문제 : 사용자로부터 나이를입력받아 나이에 따라 보기와 같이 출력되게 작성 

아래에 답 만들어 놨습니다.

나이가 0세 이상 12세 이하일 경우: "어린이 요금입니다."
나이가 13세 이상 18세 이하일 경우: "청소년 요금입니다."
나이가 19세 이상 64세 이하일 경우: "성인 요금입니다."
나이가 65세 이상일 경우: "노인 요금입니다."
나이가 음수이거나 150세를 초과할 경우: "유효하지 않은 나이입니다."

 

 

 

 

 

 

 

 

 

 

#include <stdio.h>

int main() {
    int age;
    printf("나이를 입력하세요: ");
    scanf("%d", &age);

    // 1. if-else 조건문으로 요금 출력
    if (age < 0 || age > 150) {
        printf("유효하지 않은 나이입니다.\n");
    } else if (age <= 12) {
        printf("어린이 요금입니다.\n");
    } else if (age <= 18) {
        printf("청소년 요금입니다.\n");
    } else if (age <= 64) {
        printf("성인 요금입니다.\n");
    } else {
        printf("노인 요금입니다.\n");
    }

    // 2. switch 문으로 10대 단위 출력
    switch (age / 10) {
        case 0:
            printf("10대 미만입니다.\n");
            break;
        case 1:
            printf("10대입니다.\n");
            break;
        case 2:
            printf("20대입니다.\n");
            break;
        case 3:
            printf("30대입니다.\n");
            break;
        case 4:
            printf("40대입니다.\n");
            break;
        case 5:
            printf("50대입니다.\n");
            break;
        case 6:
            printf("60대입니다.\n");
            break;
        case 7:
            printf("70대입니다.\n");
            break;
        case 8:
            printf("80대입니다.\n");
            break;
        case 9:
            printf("90대입니다.\n");
            break;
        default:
            printf("90대 이상입니다.\n");
            break;
    }

    return 0;
}
반응형