LOOPING SUBROUTINES REFERENCE
Subroutines can be looped using the do/while or while/endwhile keyword constructs.
DO/WHILE
The do/while loop executes a block of code once and continues to execute the code block until the while argument evaluates to true.
Do/while loop example:
#1 = 0 (assign parameter #1 the value of 0)
o100 do
(debug, parameter 1 = #1)
o110 if [#1 EQ 2]
#1 = 3 (assign the value of 3 to parameter #1)
(msg, #1 has been assigned the value of 3)
o100 continue (skip to start of loop)
o110 endif
(some code here)
#1 = [#1 + 1] (increment the test counter)
o100 while [#1 LT 3]
M02
WHILE/ENDWHILE
The while/endwhile repeats a set of statements an indefinite number of times, as long as the while argument evaluates to true.
While/endwhile example:
(draw a sawtooth shape)
G00 X1 Y0 (move to start position)
#1 = 1 (assign parameter #1 the value of 0)
F25 (set a feed rate)
o101 while [#1 LT 10]
G01 X0
G01 Y[#1/10] X1
#1 = [#1+1] (increment the test counter)
o101 endwhile
M02 (end program)
The following statements cause an error message and abort the interpreter:
- A return or endsub not within a sub definition
- A label on repeat which is defined elsewhere
- A label on while which is defined elsewhere and not referring to a do
- A label on if defined elsewhere
- A undefined label on else or elseif
- A label on else, elseif or endif not pointing to a matching if
- A label on break or continue which does not point to a matching while or do
- A label on endrepeat or endwhile no referring to a corresponding while or repeat