스위치 대/소문자 구분 기호를 사용하는 경우 'break' 문
C/Objective-C/C++의 모든 스위치 케이스 문에 곱슬곱슬한 중괄호를 사용합니다.
나는 몇 분 전까지 그것을 포함할지 고려하지 않았습니다.break;교정기 안의 진술이 좋거나 나쁜 관행이었습니다.나는 그것이 중요하지 않다고 의심하지만, 나는 여전히 물어볼 가치가 있다고 생각합니다.
switch (foo) {
case 1: {
// stuff
break;
}
default: {
break;
}
}
대
switch (foo) {
case 1: {
// stuff
} break;
default: {
// stuff
} break;
}
짧은 대답: 중요하지 않습니다.
조금만 더 자세한 답변을 드리자면...
공식적인 C99 사양은 브레이크 문에 대해 다음과 같이 말합니다.
중단 문은 가장 작은 엔클로저 스위치 또는 반복 문의 실행을 종료합니다.
그래서 그것은 정말 중요하지 않습니다.저 같은 경우에는, 저는 그 브레이크를 곱슬곱슬한 교정기 안에 넣었습니다.여러분은 또한 곱슬곱슬한 교정기 안의 다른 곳에서도 휴식을 가질 수 있기 때문에, 교정기 안의 끝 부분도 휴식을 갖는 것이 더 논리적입니다.일종의 반송 명세서와 같습니다.
곱슬곱슬한 교정기와 스위치를 결합하는 방법에는 수많은 코딩 스타일이 있습니다.제가 선호하는 것을 예시에 사용하겠습니다.그break문은 위치에 관계없이 가장 안쪽 루프 또는 스위치 문에서 분리됩니다.예를 들어, 단일 사례에 대해 여러 개의 중단이 있을 수 있습니다.
switch (foo) {
case 1:
{
if (bar)
break;
bar = 1;
...
}
break;
}
사례를 어디에나 둘 수 있지만, 이는 다소 잘못된 관행으로 간주됩니다.케이스 라벨은 라벨로 이동하는 것과 매우 유사합니다.제가 이런 글을 쓴 적이 있습니다.
switch (foo) {
case 1:
bar = 1;
if (0) {
case 2:
bar = 2;
}
...
break;
}
하지만 조심해서 사용하세요.
어휘 범위에 필요한 경우가 아니라면 아마도 처음부터 곡선을 원하지 않을 것입니다.첫 번째 예는 제가 보기에는 더 좋아 보이지만, 진짜 답은 취향의 문제라고 생각합니다.
분명히 언급했듯이, 이것은 단지 개인적인 스타일의 문제이지만, 저는 항상 브레이스 바깥에 브레이크 문을 둡니다. 마무리 브레이스 앞에 브레이크를 두는 것은 복합 문을 튀어나와 스파게티 코드 느낌을 약간 증가시키는 것 같습니다.
언급URL : https://stackoverflow.com/questions/7374486/break-statement-when-using-curly-braces-in-switch-case
'programing' 카테고리의 다른 글
| 집합의 모든 하위 집합을 가져오는 방법?(전원 설정) (0) | 2023.06.13 |
|---|---|
| ORA-06508: PL/SQL: 호출 중인 프로그램 단위를 찾을 수 없습니다. (0) | 2023.06.13 |
| VueJS - 저장된 데이터의 반응성 제한 (0) | 2023.06.13 |
| 수신기를 사용하여 데이터베이스의 데이터 변경 탐지 (0) | 2023.06.13 |
| django 테스트를 실행할 때 sql 쿼리를 보는 방법은 무엇입니까? (0) | 2023.06.13 |