우테코 과제를 하다가 가독성을 위해 Switch문을 사용하게 되었다.
그런데 나는 앞서서 유효성검사를 했기 때문에 경우의 수가 무조건 딱 떨어지는 상황이었다.
이것에 관련해서 default를 굳이 사용해야할까? 라는 생각이 들었는데 이유는 우테코 과제를 하다보면
함수의 길이를 10줄 아래로 제한하기 때문이다.
그래서 구글링하고 stackoverflow의 나같은 생각을 한 친구의 질문에 답변들을 알아봅시당.
https://stackoverflow.com/questions/8021321/what-if-i-dont-write-default-in-switch-case
The code is valid. If there is no default: label and none of the case labels match the "switched" value, then none of the controlled compound statement will be executed. Execution will continue from the end of the switch statement.
코드는 유효합니다. 만약 default: 라벨이 없고, 그 어떤 케이스도 switch 값에 맞는게 없다면 그 어떤 제어 복합문이 실행되지 않을 것입니다. 그리고 스위치문이 케이스가 끝날때까지 계속 진행될 것입니다.
As others have pointed out it is perfectly valid code. However, from a coding style perspective I prefer adding an empty default statement with a comment to make clear that I didn't unintentionally forget about it.
다른 사람들이 언급한걸 봤듯이 유효한 코드입니다. 하지만, 코딩 스타일 관점에서는 저는 빈 default 문을 주석과 함께 실수로 잊어버린게 아니라는걸 확실시 하는 편입니다.
int a=10;
switch(a)
{
case 0: printf("case 0");
break;
case 1: printf("case 1");
break;
default: // do nothing;
break;
}
여전히 유효한건 맞는거 같아서 과제에 10줄 이하라는 조건이 있는 저로써는 default를 이번에는 생략을 해야겠습니다. 하지만 그런 조건이 없을때는 위처럼 빈 default문이라도 만들어서 표현해주는게 make sense해 보이네요. 이상입니다.
'Good to Know' 카테고리의 다른 글
웹은 어떻게 동작하는가 ? (0) | 2023.01.02 |
---|---|
Intl 국제화표준 API (0) | 2022.11.30 |
VSCODE Syntax Highlighting이 안될 때 (0) | 2022.11.17 |
MVC를 이용한 간단한 TODO JS (번역) (0) | 2022.11.17 |
router.push vs Link vs a 태그 (0) | 2022.10.02 |