Counting loops

Counting loops permit the processing of statements n times. The number of loop passages is checked by a counting variable.

The syntax of a counting loop starts with:

$FOR P<expr> = <expr1>, <expr2>, <expr3>

and always ends with:

$ENDFOR

Here, P<expr> is the counting variable. Its start value is specified by <expr1>, its end value by <expr2> and the counting increment by <expr3>.

Notice

notice

Only integer values may be used as counting variables.

If decimal numbers are used, it is not possible to precisely represent the increment exactly (exception: powers of two) since a rounding error accumulates when added. This may lead to a loop that passes through one loop too few.

Instead of the P parameters, it is also possible to use variables ("V.”) with write access.

If the counting increment is negative, the loop is aborted if the end value is undershot; if the counting increment is positive, the loop is aborted if the end value is exceeded. Programming the counting increment 0 leads to an endless loop and to the output of a warning.

Programing Example

prg_example

Counting loops

N100 $FOR P1= 10, 100, 2  P1 is pre-assigned the value 10 at loop start.
                          The counting loop is passed until P1
                          exceeds the value 100; then P1 is
                          incremented by 2 at the end of every loop
                          pass.

N110 X SIN [P1 * 5]       Within the counting loop, the NC blocks N110
                          to N130 are executed..

N120 Y COS [P1 * 5]

N130 ...

N150 $ENDFOR

Programing Example

prg_example

Negative step width:

N100 $FOR P1= 100, 10, -2  P1 is pre-assigned the value 100 at loop start.
                           The counting loop is passed until
N110     X SIN [P1 * 5]    P1 undershoots the value 10; then P1 is
                           decremented by 2 at the end of every loop
                           pass. In the counting loops, the NC blocks N110 to

                           to N130 are executed..

N120 Y COS [P1 * 5]

N130 ...

N150 $ENDFOR

Loops not executed:

N100 $FOR P1= 100, 10, 1   P1 is pre-assigned the value 100 at loop start.
                           The counting loop is passed until
                           P1 exceeds the value 10.
N110 X SIN [P1 * 5]        But here no loop since P1 is pre-assigned the
                           value 100.

N120 Y COS [P1 * 5]

N130 ...

N150 $ENDFOR

Endless loop:

N100 P2=20

N110 $FOR P1= 100, 10, 0 Endless loop

N120 $IF P2 == 50

N130 $BREAK

N140 $ENDIF

N150 $ENDFOR