Using continue in a switch statement

break, c, c++, continue, switch-statement

Solution

It's fine, the `continue` statement relates to the enclosing loop, and your code should be equivalent to (avoiding such jump statements):

while (something = get_something()) {
    if (something == A || something == B)
        do_something();
}

But if you expect `break` to exit the loop, as your comment suggest (it always tries again with another something, until it evaluates to false), you'll need a different structure.

For example:

do {
    something = get_something();
} while (!(something == A || something == B));
do_something();

Problem

I want to jump from the middle of a `switch` statement, to the loop statement in the following code: ``` 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(); } ``` Is this a valid way to use `continue`? Are `continue` statements ignored by `switch` statements? Do C and C++ differ on their behaviour here?

Original source

Related problems