[5-3] switch문

2024. 9. 5. 15:02·📚 STUDY/🔥 C

- C언어에는 계단식 if문 대신 switch문을 사용할 수 있음.

// 1
if (grade == 4) {
    printf("훌륭해요!")
} else if (grade == 3) {
    printf("좋아요!");
} else if (grade == 2) {
    printf("평균이네요!");
} else if (grade == 1) {
    printf("좋지 않아요!");
} else if (grade == 0) {
    printf("좀 더 노력하세요!");
} else {
    printf("잘못된 학점입니다");
}

// 2
switch (grade) {
case 4:
    printf("훌륭해요!")
    break;
case 3:
    printf("좋아요!");
    break;
case 2:
    printf("평균이네요!");
    break;
case 1:
    printf("좋지 않아요!");
    break;
case 0:
    printf("좀 더 노력하세요!");
    break;
default:
    printf("잘못된 학점입니다");
    break;
}

 

- 대부분의 경우 switch문은 다음과 같은 구조를 가짐.

switch (expression) {
case constant-expression:
    statements
…
case constant-expression:
    statements
default:
    statements
}
  • 제어식 : switch라는 단어 다음엔 반드시 괄호로 둘러싸인 정수 표현식이 나와야 함.
  • 조건 부호 : 각 조건은 다음 형식으로 부호가 붙여져야 함.
  • 구문 : 각 조건부호 다음에 1개 이상의 구문이 올 수 있음. 굳이 복합문처럼 중괄호를 써줄 필요가 없음. 각 조건부호의 구문은 주로 break문으로 끝남.

 

📌 break 구문의 역할

- switch문에서 나오게 만듦. ✅ 프로그램 실행이 switch문 다음 구문으로 넘어가게 되는 것.

- break문이 필요한 이유 : '계산된 도약' 때문. 이게 없다면, 제어는 계속해서 다음 조건으로 넘어가게 될 것.

 

ex)

switch (grade) {
case 4:
    printf("훌륭해요!")
case 3:
    printf("좋아요!");
case 2:
    printf("평균이네요!");
case 1:
    printf("좋지 않아요!");
case 0:
    printf("좀 더 노력하세요!");
default:
    printf("잘못된 학점입니다");
}
  • break문이 없음.
  • grade가 3일 경우, 실행결과 : 좋아요!평균이네요!좋지 않아요!좀 더 노력하세요!잘못된 학점입니다

 

🌐 [프로그래밍] 날짜를 법률상의 서식으로 출력하기

🌐 date.c

/* 날짜를 미국 법적 형식으로 출력한다 */

#include <assert.h> /* 역자 추가 */
#include <stdio.h>

int main(void)
{
    int month;
    int day;
    int year;

    printf("날짜를 입력해주세요 (mm/dd/yy): ");
    scanf("%d /%d /%d", &month, &day, &year);

    printf("Dated this %d", day);
    switch (day) {
    case 1:
        /* intentional fallthrough */
    case 21:
        /* intentional fallthrough */
    case 31:
        printf("st");
        break;
    case 2:
        /* intentional fallthrough */
    case 22:
        printf("nd");
        break;
    case 3:
        /* intentional fallthrough */
    case 23:
        printf("rd");
        break;
    default:
        printf("th");
        break;
    }
    printf(" day of ");

    switch (month) {
    case 1:
        printf("January");
        break;
    case 2:
        printf("February");
        break;
    case 3:
        printf("March");
        break;
    case 4:
        printf("April");
        break;
    case 5:
        printf("May");
        break;
    case 6:
        printf("June");
        break;
    case 7:
        printf("July");
        break;
    case 8:
        printf("August");
        break;
    case 9:
        printf("September");
        break;
    case 10:
        printf("October");
        break;
    case 11:
        printf("November");
        break;
    case 12:
        printf("December");
        break;
    /* 역자 추가 코드 */
    default:
        assert(0);
        break;
    }

    printf(", 20%.2d.\n", year);

    return 0;
}

 

 

 

 

💡 본 내용은 K.N.King의 C Programming: A Modern Approach 책을 참고하였습니다.

저작자표시 (새창열림)

'📚 STUDY > 🔥 C' 카테고리의 다른 글

[6-1] while  (2) 2024.09.05
Q&A (들여쓰기 방식, switch 문 작성 방식)  (0) 2024.09.05
[5-2] if문  (3) 2024.09.05
[5-1] 논리표현식  (0) 2024.09.04
Q&A (pow, fmod, 연산자)  (2) 2024.09.03
'📚 STUDY/🔥 C' 카테고리의 다른 글
  • [6-1] while
  • Q&A (들여쓰기 방식, switch 문 작성 방식)
  • [5-2] if문
  • [5-1] 논리표현식
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 🌱 탐구 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (47)
        • 🔥 C (32)
        • 📈 알고리즘 (9)
        • 👀 컴퓨터비전 (5)
        • 🔆 UNITY (1)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    모션캡처
    Azure Kinect
    컴퓨터비전
    필기
    c기초
    2022년
    실기
    SW 설계
    SW 개발
    opencv
    RC
    DB 구축
    정보시스템 구축관리
    azurekinect
    2021년
    Slam
    Remote Internship
    Unity
    mocopi
    식별자
    BOJ
    정처기
    프언 활용
    Body Tracking
    C++
    C언어
    알고리즘
    C
    정보처리기사
    토익
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
엄지잉
[5-3] switch문
상단으로

티스토리툴바