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
以外の値が2番目のケースで使用されても、まだ実行されます。私はcase 100
の後にはbreak
がないことを知っています。しかし、なぜ私はコンパイル時エラーを受け取らないのですか?明確にするために、なぜインナーケース内の他の値も成功しますか?例えば、
case 70000:
スイッチ/ケースは、値を計算したgoto/labelとかなりの差があり、いくつかの追加の制約があります。 – Eljay
'case 100'と' case 200'の間に 'break'文がないので、fall throughが起こります。 –
['switch'は誰よりももっと厄介なことがあります](http://blog.robertelder.org/switch-statements-statement-expressions/) –