카테고리 없음

switch case 문

에푸 2022. 2. 4. 18:29

오늘 if문과 같이 조건문으로 쓰이는 switch case문을 배웠는데 유용하게 응용할 수 있을 거 같은 느낌이다

 

기본을 배우면서 월별 날짜 계산 코드도 그냥 예제 안 보고 만들어봤는데 만족스럽다

 

int month;

printf("몇 월인지 입력: ");
scanf_s("%d", &month);

if (month > 12) {
    printf("입력이 잘못되었습니다\n");
}
else {
    switch (month) {
    case 2: printf("2월은 28일입니다"); break;
    case 4:
    case 6:
    case 9:
    case 11: printf("%d월은 30일입니다", month); break;
    default: printf("%d월은 31일입니다", month); break;

}
}

 

처음에 만든 것은 else문 안에 있는 switch문이다. 

저거만 달랑 써놓으면, 13을 입력했을 때 13월도 31일로 출력해버린다.

그래서 처음에는 case값을 더 넣어서 1,3,5,7,10,12 등 이것까지 넣어버리고 31일입니다 break;써서 처리하고 default값에 입력이 잘못되었습니다 넣었더니 case 코드가 너무 길어져버렸다. 그게 맘에 안 들어서 처음부터 오류검출기능을 넣자 하고 if와 else문으로 분기를 넣고 else문 안에 switch문을 넣고 31일로 처리되는 게 값이 가장 많으니 그걸 default로 처리해버렸다. 간단한 해결이었지만 뿌듯한 느낌이다!