What are the benefits of using a while
loop over a for
loop? When I'm iterating through arrays, I always use a for
loop so I wondered if I'm missing something here.
I've never had a situation where a for
loop doesn't do the job, but I'm worried that I may be picking up bad habits here. My usage of loops has been with regards to elements on web pages, stuff in animations, etc..
Functionally, one can substitute the other in all conditions. Is one better than the other? Not in javascript (which you have tagged) as its not a compiled language.
But in languages like C++, a for loop usually gives the compiler a static count to loop which the compiler can use to optimize the binary. So it should run faster (on very large loop counts).
That should not be a worry in today's age where you won't even notice the performance increase on a loop running for 10000 iterations on a 2.5 ghz quad core CPU.
However, personally, aesthetics matter to me (and it should to you if you are serious about the art of coding) a lot. For example when you are dealing with an external condition (the variable you are checking is defined outside the loop), go with a while loop. Its just semantically so much beautiful. Also while loop should be the de-facto choice for an infinite loop (I don't see a reason why you would have an infinite loop in javascript, though).
In short, follow the syntax. Are you just checking a condition? Go with a while loop. Are you initializing and incrementing/decrementing something with in the context of a loop along with checking a condition? Only then go with the for loop.
You can always use either of the loops. But, the most common usage of
for
loops is when the number of iterations are known, and thewhile
loop having uncertain number of iterations or would depend upon a particular condition. For example:These are the reasons I would choose one over the other:
For-loop Syntax:
I would use a for loop for the reason that I may KNOW the NUMBER OF ITERATIONS I need to do and I have an INCREMENTING variable which can be handy sometimes.
While-loop Syntax:
I would use this loop when I am NOT SURE how many ITERATIONS I might need to carry out. Examples: Waiting for user to input correct input values and keep looping until he/she inputs the proper value.
Do-While loop Syntax:
This loop is almost the same as a while-loop but I would prefer this when I need something done ATLEAST ONCE before I start verifying whatever it is that would make me wanna loop and do that code again. Example: ask a user for an input for the first time and then validate it. If wrong input given then loop back and ask for input again