다음은 switch
문 예입니다.switch 문에서 다른 케이스 안에 케이스를 넣을 수있는 이유는 무엇입니까?
int main(){
int number1 = 100, number2 = 200;
switch(number1){
case 100:{
cout << " outer switch number is: " << number1 << endl;
case 200:{ // any value other than 100
cout << "inner switch number is: " << number2 << endl;
}
break;
}
break;
}
return 0;
}
:
100
을 다음case 200
의 다음 문을 인쇄 나는이 방법을 왜 작동하지 않습니다. 또한 두 번째 경우에200
이외의 값이 사용되면 여전히 실행됩니다.case 100
뒤에는break
이 없습니다. 하지만 대신 컴파일 타임 오류가 발생하지 않는 이유는 무엇입니까?더 명확히 말하면, 내부 케이스의 다른 값도 왜 성공할 것입니까? 예를 들어,
case 70000:
스위치/케이스는 goto/label을 계산 한 값으로, 몇 가지 추가 제약이 있습니다. – Eljay
'case 100'과 'case 200'사이에 'break'문이 없으므로 fall through가 발생합니다. –
['switch'] 누구나 생각할 수있는 것보다 훨씬 더 불쾌한 일들이 있습니다.] (http://blog.robertelder.org/switch-statements-statement-expressions/). –