각 문마다 그 switch
구성 (많은 언어로)을 사용 하기로 결정한 (그리고 어떤 개념에 기초하여) 누가 break
?
왜 이런 식으로 작성해야합니까?
switch(a)
{
case 1:
result = 'one';
break;
case 2:
result = 'two';
break;
default:
result = 'not determined';
break;
}
(PHP와 JS에서 이것을 주목했습니다; 아마도 이것을 사용하는 다른 많은 언어가있을 것입니다)
switch
의 대안 인 경우 if
와 동일한 구성을 사용할 수없는 이유는 if
무엇입니까? 즉 :
switch(a)
{
case 1:
{
result = 'one';
}
case 2:
{
result = 'two';
}
default:
{
result = 'not determined';
}
}
break
현재 블록 다음에 블록이 실행 되는 것을 방지 한다고합니다 . 그러나 누군가가 실제로 현재 블록을 실행하고 다음 블록을 실행할 필요가있는 상황에 처하게됩니까? 나는하지 않았다. 나를 위해, break
항상 있습니다. 모든 블록에서. 모든 코드에서.
case 'a': case 'A': case 'b': case 'B'
했지만 대부분 할 수 없기 때문이다 case in [ 'a', 'A', 'b', 'B' ]
. 약간 더 나은 질문은 현재 선호하는 언어 (C #)에서 휴식이 필수 이며 암시적인 오류 는 없습니다 . 잊어 버리는 break
것은 구문 오류입니다 ... : \
case TOKEN_A: /*set flag*/; case TOKEN_B: /*consume token*/; break; case TOKEN_C: /*...*/
break
보다 구현하는 매우 간단한 규칙이다 어디서나 존재" "경우 점프를 방출하지 마십시오 fallthrough
A의 존재 switch
".
CASE
명령문을 거대한 if / elseif 블록과 동일하게 취급합니다 .