Using continue in a switch statement
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();
Yes, it's OK - it's just like using it in an if
statement. Of course, you can't use a break
to break out of a loop from inside a switch.
Yes, continue will be ignored by the switch statement and will go to the condition of the loop to be tested.I'd like to share this extract from The C Programming Language reference by Ritchie:
The
continue
statement is related tobreak
, but less often used; it causes the next iteration of the enclosingfor
,while
, ordo
loop to begin. In thewhile
anddo
, this means that the test part is executed immediately; in thefor
, control passes to the increment step.The continue statement applies only to loops, not to a
switch
statement. Acontinue
inside aswitch
inside a loop causes the next loop iteration.
I'm not sure about that for C++.