问题
Douglas Crockfod says that it is usually better to refactor the continue
inside the loop.
Why is continue considered bad within a loop?
回答1:
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.
回答2:
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:
Link
Disclaimer: Not my material, I have referenced back to the source
回答3:
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.
来源:https://stackoverflow.com/questions/4913981/why-is-continue-inside-a-loop-a-bad-idea