1. ホーム
  2. c++

[解決済み] switch文でのcontinueの使用

2022-09-18 09:26:59

質問

の途中からジャンプしたい。 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++ではこのあたりの動作が違うのでしょうか?

どのように解決するのですか?

大丈夫です。 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();