programing

스위치 대/소문자 구분 기호를 사용하는 경우 'break' 문

easyjava 2023. 6. 13. 22:55
반응형

스위치 대/소문자 구분 기호를 사용하는 경우 '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

반응형