C# for loop syntax

Viewed 509

I'm working on some C# code that has loop syntax that I've never seen before:

for (;;)
{
  //Do some stuff
}

What does a for loop without a init; condition; or increment do? By the way it's really hard to find meaningful search results on the internet for "for (;;) c#" on any search engine I tried.

-Eric

4 Answers

That is an infinite loop. Like you stated, it will run until a part of it breaks (throws an exception or otherwise exists the loop) or the machine runs out of resources to support the loop.

for (;;)
{
   //do stuff
} 

Is just the same as:

do
{
   //do stuff
}while (true)

while(true)
{
   //do stuff
}

The syntax of a for loop is thus:

for (condition; test; action)

Any one of those items can be omitted (per the language spec). So what you've got is an infinite loop. A similar approach:

while (true) { // do some stuff }

for (;;)

Short answer: It is an infinite loop which is equivalent to while(true)

Long answer: for (initializer; condition; iterator) Structure of the for statement

  • initializer block: Do not initialize variable.
  • condition block: with no condition (means execute infinitely) => while true
  • iterator block: with no operation to any variable (no iterator)

for(;;) example from official documentation

This type of for loop is an infinite loop. It is the equivalent of while(true){stuff to be executed...}. It keeps on going until it hits a break, return, or a goto to a label outside the loop.

A for loop has three parts, an initialization, a condition, and a block to be executed after the loop. Without a condition to be tested against, the loop will just keep on going.

Related