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

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

    • Github
  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.