次のコードでは、ステートメントの途中からswitch
ループ ステートメントにジャンプしたいと思います。
while (something = get_something())
{
switch (something)
{
case A:
case B:
break;
default:
// get another something and try again
continue;
}
// do something for a handled something
do_something();
}
これは有効な使用方法でしょうかcontinue
?continue
ステートメントはswitch
ステートメントによって無視されますか? ここで C と C++ の動作は異なりますか?
ベストアンサー1
問題ありません。continue
ステートメントは囲んでいるループに関連しており、コードは次と同等になるはずです (このようなジャンプ ステートメントは避けてください)。
while (something = get_something()) {
if (something == A || something == B)
do_something();
}
break
しかし、コメントが示唆するようにループを終了することを期待する場合(false と評価されるまで、常に別の何かで再試行します)、別の構造が必要になります。
例えば:
do {
something = get_something();
} while (!(something == A || something == B));
do_something();