This functionality does not run in MATLAB.
while condition do body end_while _while(condition, body)
while - end_while represents a loop that evaluates its body while a specified condition holds true.
In a while loop, condition is evaluated before the body is executed for the first time. If condition evaluates to TRUE, the loop is entered and body and condition are evaluated until condition evaluates to FALSE.
In contrast to the while loop, the body of a repeat loop is always evaluated at least once.
The body may consist of any number of statements which must be separated either by a colon : or a semicolon ;. Only the last evaluated result inside the body (the return value of the loop) is printed on the screen. Use print to see intermediate results.
The keyword end_while may be replaced by the keyword end.
The imperative form while - end_while is equivalent to corresponding call of the function _while. In most cases, the imperative form should be preferred because it leads to simpler code.
The $-operator is often a more elegant notation for loops.
_while is a function of the system kernel.
Intermediate results of statements within a repeat and while loop are not printed to the screen:
i := 1: s := 0: while i < 3 do s := s + i; i := i + 1; end_while
Above, only the return value of the loop is displayed. Use print to see intermediate results:
i := 1: s := 0: while i < 3 do print("intermediate sum" = s); s := s + i; i := i + 1; s end_while
delete i, s:
A simple example is given, how a repeat loop can be expressed via an equivalent while loop. For other examples, this may be more complicated and additional initializations of variables may be needed:
i := 1: repeat print(i); i := i + 1; until i = 3 end:
i := 1: while i < 3 do print(i); i := i + 1; end:
condition := UNKNOWN: while not condition do print(Condition = condition); condition := TRUE; end_while:
Error: The Boolean 'TRUE' or 'FALSE' is expected. [while]
To avoid this error, change the stopping criterion to condition <> TRUE:
condition := UNKNOWN: while condition <> TRUE do print(Condition = condition); condition := TRUE; end_while:
We demonstrate the correspondence between the functional and the imperative form of the repeat and while loop, respectively:
hold(_repeat((statement1; statement2), condition))
repeat statement1; statement2 until condition end_repeat
hold(_while(condition, (statement1; statement2)))
while condition do statement1; statement2 end_while
The body of the loop: an arbitrary sequence of statements
Value of the last command executed in the body of the loop. If no command was executed, the value NIL is returned. If the body of a while loop is not evaluated due to a false condition, the void object of type DOM_NULL is returned.