Next: dolist dotimes, Up: Loops & Recursion [Contents][Index]
while
The while
special form tests whether the value returned by evaluating
its first argument is true or false. This is similar to what the Lisp
interpreter does with an if
; what the interpreter does next, however,
is different.
In a while
expression, if the value returned by evaluating the first
argument is false, the Lisp interpreter skips the rest of the expression
(the body of the expression) and does not evaluate it. However, if
the value is true, the Lisp interpreter evaluates the body of the expression
and then again tests whether the first argument to while
is true or
false. If the value returned by evaluating the first argument is again
true, the Lisp interpreter again evaluates the body of the expression.
The template for a while
expression looks like this:
(while true-or-false-test body…)
• Looping with while | Repeat so long as test returns true. | |
• Loop Example | A while loop that uses a list.
| |
• print-elements-of-list | Uses while , car , cdr .
| |
• Incrementing Loop | A loop with an incrementing counter. | |
• Incrementing Loop Details | ||
• Decrementing Loop | A loop with a decrementing counter. |