The repeat control structure executes a process a number of times and returns a group of its values before continuing on.
The repeat clause can either be terminated by finishing all number of repetitions or by reaching a break statement
The continue statement will terminate the current repetition and continue on to the next repetition if any more exists, otherwise it will end the repeat clause
(1) repeat [repetitions] : [process1]
(2) repeat [repetitions] : [process1] else [condition2] : [process2]
(1) The [repetitions] value must be an int, but can be omitted to repeat indefinitely, but such a clause must have a break statement. While the clause does not end, [process1] is executed. If not terminated by break, a group of the values of all executions are returned, otherwise the null value is returned
(2) Like (1), except if not ended by the break statement, the else clauses are executed. else clauses can be chained. If [condition1] is false, [condition2] is checked for each clause, and the first clause to have [condition2] to evaluate to true is executed and returned. All other else clauses are ignored. [condition2] can be omitted and will default to true, but such an else clause must be placed last. The null value is returned if no clause executes.