ajax333221 ajax333221 - 1 year ago 67
Javascript Question

Is there a loop "start-over"?

  • There is
    to stop the loop and move to the next loop

  • There is
    to stop the loop and move to the end of the loop

Isn't there some kind of
that stop the loop and move to the beginning of the loop?

I know it is easy to achieve all of these three actions by just modifying the value of
, but I always try to look for already built-it functions.

Answer Source

No - there is no keyword or other way to do it automatically.

As you already mentioned you can just modify the loop condition variable(s) within your loop. Easy if it's a simple i counter, but of course you may have more initialisation to do than just a simple counter.

Or you can do something like the following:

while (true) {
   for (var i=0, j=100000, x="test"; i < 1000; i++, j--, x+= ".") {
      if (/*some condition, want to restart the loop*/)
          continue restartLoop;

The continue restartLoop will jump back out to continue with the next iteration of the while loop, which then immediately starts the for loop from the beginning including all of the initialisation code. If the for exits normally the break statement after it will break out of the containing while loop.

I don't really recommend doing this in a general sense, but if your loop initialisation process was really complicated it could be worth it because then you wouldn't need to repeat it all inside the loop. If you needed to do even more initialisation than fits nicely in the for statement's initialisation expression you can easily put it just before the for loop inside the while and it will all be re-run...

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download