August 1997
Beginner
312 pages
8h 35m
English
The third way
you can jump around in a looping block is with
redo. This construct causes a jump to the
beginning of the current block (without reevaluating the control
expression), like so:
while (somecondition) { # redo comes heresomething;something;something; if (somecondition) {somestuff;somestuff; redo; }morething;morething;morething; }
Once again, the if block doesn’t
count—just the looping blocks.
With redo, last, and a naked
block, you can make an
infinite loop
that exits out of the middle, like so:
{
startstuff;
startstuff;
startstuff;
if (somecondition) {
last;
}
laterstuff;
laterstuff;
laterstuff;
redo;
}This logic would be appropriate for a while-like
loop that needed to have some part of the loop executed as
initialization before the first test. (In a later section entitled
“Expression Modifiers,” we’ll show you how to write
that if statement with fewer punctuation
characters.)
Read now
Unlock full access