다음 switch
진술을 고려하십시오 .
switch( value )
{
case 1:
return 1;
default:
value++;
// fall-through
case 2:
return value * 2;
}
이 코드는 컴파일되지만 C90 / C99에 유효합니까 (= 정의 된 동작)? 기본 사례가 마지막 사례가 아닌 코드를 본 적이 없습니다.
편집 : Jon Cage 와 KillianDS가 쓴
것처럼 : 이것은 정말 추악하고 혼란스러운 코드이며 잘 알고 있습니다. 나는 일반적인 구문 (정의되어 있습니까?)과 예상 출력에 관심이 있습니다.
goto
는 사악하지 않습니다. 화물 컬트 추종자들은! 당신은 사람들이 피하려고 할 수있는 극단적 인 것을 상상할 수 없었습니다 goto
.
goto
유사한 시뮬레이션 뭔가 주로 finally
능숙 (파일, 메모리), 중지 및 모든 오류 사건에 대한 목록을 반복 할 때 발표해야 할 기능의 절 free
과 close
가독성을 위해 도움이되지 않습니다. goto
내가 피하고 싶지만 할 수없는 한 가지 용도가 있지만 루프에서 벗어나고 싶을 때 루프 안에 switch
있습니다.