私はこれを持っています:
switch(i)
{
case a:
{
//code
}
case b:
{
//code
}
case c:
{
//code
}
}
の場合i == a
、コードを挿入しb
てc
実行しますか、それともそれぞれにを挿入する必要がありbreak;
ますか?
ありがとう、
私はこれを持っています:
switch(i)
{
case a:
{
//code
}
case b:
{
//code
}
case c:
{
//code
}
}
の場合i == a
、コードを挿入しb
てc
実行しますか、それともそれぞれにを挿入する必要がありbreak;
ますか?
ありがとう、
それぞれに入れなければなりません
break;
か?
はい、1つのケースのみを実行する場合は可能です。あるいは、またはのように、他の制御フローステートメントによってaswitch
が終了することもあります。return
throw
たとえば、に置き換える//code
と、std::cout << "case [x]" << std::endl
答えはすぐにわかります。
はい、正しく機能するには休憩が必要です。括弧はスコープを導入するだけで、フロー制御には影響しません。
そうすることは良い習慣ですが、最後のものではありません。
1つに入れないbreak
と、現在のケースと継続するすべてのケースが、次のブレーク、スロー、またはリターンまで実行されます。
case
これは、2つのセクションで同じコードを実行する場合に役立ちます。次のように記述できます。
case a:
case b:
// ... some code...
break;
これは、aとbの両方に対して実行されます。