Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it a bad practice to use break in a for loop? [closed]

Tags:

for-loop

break

Is it a bad practice to use break statement inside a for loop?

Say, I am searching for an value in an array. Compare inside a for loop and when value is found, break; to exit the for loop.

Is this a bad practice? I have seen the alternative used: define a variable vFound and set it to true when the value is found and check vFound in the for statement condition. But is it necessary to create a new variable just for this purpose?

I am asking in the context of a normal C or C++ for loop.

P.S: The MISRA coding guidelines advise against using break.

like image 562
kiki Avatar asked Oct 13 '10 10:10

kiki


People also ask

Is it bad practice to use break in a for loop?

Using a break in a for loop is akin to using a return in the middle of a function - sometimes it makes a lot of sense, but sometimes the break or return may not easily be seen when debugging the code. And code that's difficult or tricky to maintain is crappy code.

Do you need to break a for loop?

To break out of a for loop, you can use the endloop, continue, resume, or return statement. endfor; If condition is true, statementlist2 is not executed in that pass through the loop, and the entire loop is closed.

Is it OK to use break in Python?

You can use break in Python in all the loops: while, for, and nested. If you are using it in nested loops, it will terminate the innermost loop where you have used it, and the control of the program will flow to the outer loop.


2 Answers

No, break is the correct solution.

Adding a boolean variable makes the code harder to read and adds a potential source of errors.

like image 156
smirkingman Avatar answered Nov 22 '22 21:11

smirkingman


Lots of answers here, but I haven't seen this mentioned yet:

Most of the "dangers" associated with using break or continue in a for loop are negated if you write tidy, easily-readable loops. If the body of your loop spans several screen lengths and has multiple nested sub-blocks, yes, you could easily forget that some code won't be executed after the break. If, however, the loop is short and to the point, the purpose of the break statement should be obvious.

If a loop is getting too big, use one or more well-named function calls within the loop instead. The only real reason to avoid doing so is for processing bottlenecks.

like image 31
e.James Avatar answered Nov 22 '22 19:11

e.James



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!