Reputation: 53551
Douglas Crockfod says that it is usually better to refactor the continue
inside the loop.
Why is continue considered bad within a loop?
Upvotes: 8
Views: 11629
Reputation: 8869
Using goto, break, continue, throw, or return inside the loop body can all have the un-desired effect as well. Here's another example where the loop control and the loop body are tightly interwoven. Does it write 1, 2, and 3 as before? Are you sure?
int value = 1;
for (;;++value)
{
cout << value << endl;
if (value != 4)
continue;
else
break;
}
You might be thinking that advising you not to use return statements inside loop bodies is over zealous. Do I really mean that? Yes I do. Functions that return something should do so via a single return statement at the very end of the function. Here are some practical reasons why:
Disclaimer: Not my material, I have referenced back to the source
Upvotes: 4
Reputation: 43619
The use of continue
would mean that you have insufficient conditions written in your while
.
You should instead use if
inside your while
loop, or add the condition into the while
loop.
Upvotes: 7
Reputation: 2004
The effect of continue
is somehow comparable to a goto
to the begin of the loop. It therefore makes your code more difficult to understand - like goto
s.
Upvotes: 1