fn: for
[contents]

#### Syntax

The syntax for for loops is:

f++:
for{options}(pre-loop code; condition; post-iteration code)
{
//loop code-block
}


n++:
@for{options}(pre-loop code; condition; post-iteration code)
{
//loop code-block
}


Note: Single-line code blocks do not need to be enclosed in parentheses.

#### Description

The for function takes three parameters separated by ;, the first parameter is parsed before entering the loop, the second parameter specifies a loop condition and the third parameter is parsed at the end of each loop iteration. for calls loop through the code-block following the call while the loop condition does not evaluate to 0 (for for loops the loop condition is evaluated before each iteration of the loop code-block).

Note: f++ is used for for call parameters, even for n++. If you accidentally use n++ for the parameters it will most often run without any syntax or semantic errors anyway.

Note: If not writing to the output file Nift will skip to the first non-whitespace (ie. to the first character that is not a space, tab or newline) after a for loop and inject it to the output file where the call started. If you want to prevent Nift from doing this put a '!' after the loop, eg.:

@for{!o}(pre-loop code; condition; post-iteration code)
{
# block
}!


#### Options

The following options are available for for loops:

option description
f++ parse for loop code-block with f++
n++ parse for loop code-block with n++
!\n do not add newline between each loop iteration
\n add double newline between each loop iteration
eob="value" add value between each loop iteration
option description

#### f++ example

Examples of for being used with f++:

for(int i=0; i < 10; i+=1)
console("i: ", i)

for{!s, !o}(int i=0; i<10; i+=1)