I\'ve seen this in some JavaScript code but I don\'t get what it does.
for(;;){
//other code
}
I\'m used to the for(i=0;i
That's an infinite loop. A for
loop has 3 sections separated by ;
: the initialization section where you normally declare and define your counter's starting conditions, the middle conditional statement that evaluates to true
or false
, and the increment section.
All 3 of these sections are optional. You can include any or none. The loop continues to loop until the conditional is false
. If that condition is never met (since it was left out), it loops forever.
A place where you'll likely see it is prepended to JSON data as described by this SO post.
always true
https://developer.mozilla.org/en/JavaScript/Reference/Statements/for
It creates a loop that runs indefinitely. It's the same syntax you're used to seeing, there's just no code between the semicolons.
The syntax for a for
loop includes an initializer, followed by a semicolon, followed by a condition for continuing the loop, followed by a semicolon, followed by code to run after each iteration of the loop.
Since there is no initializer, no condition that ever evaluates to false, and no post-loop code, the loop runs forever.
In JavaScript, for (;;) { ... }
just creates an infinite endless loop, which is almost exactly the same as:
while (true) {
// ...
}
or
do {
// ...
} while (true);
for (;;)
is the exact same syntax. You're allowed to leave out parts that go between the semicolons, even all of them. If you leave the condition out, it's assumed to be true
, so it results in an infinite loop. You can of course still exit with break
or return
or whatnot, hence making it not useless.