8.3 The do-while Loop

ActionScript for Flash MX: The Definitive Guide, 2nd Edition
By Colin Moock
Chapter 8.  Loop Statements

As we saw earlier, a while statement allows the interpreter to execute a block of code repeatedly while a specified condition remains true. Due to a while loop's structure, its body will be skipped entirely if the loop's condition is not met the first time it is tested. A do-while statement lets us guarantee that a loop body will be executed at least once with minimal fuss. The body of a do-while loop always executes the first time through the loop. The do-while statement's syntax is somewhat like an inverted while statement:

do {   substatements } while (condition);

The keyword do begins the loop, followed by the substatements of the body. On the interpreter's first pass through the do-while loop, substatements are executed before condition is ever checked. At the end of the substatements block, if condition is true, the loop is begun anew and substatements are executed again. The loop executes repeatedly until condition is false, at which point the do-while statement ends. Note that a semicolon is required following the parentheses that contain the condition.

Obviously, do-while is handy when we want to perform a task at least once and perhaps subsequent times. In Example 8-2 we duplicate a series of twinkling-star movie clips from a clip called starParent and place them randomly on the Stage. Our galaxy will always contain at least one star, even if numStars is set to 0.

Example 8-2. Using a do-while loop
var numStars = 5; var i = 1; do {   // Duplicate the starParent clip   duplicateMovieClip(starParent, "star" + i, i);   // Place the duplicated clip randomly on stage   _root["star" + i]._x = Math.floor(Math.random() * 551);   _root["star" + i]._y = Math.floor(Math.random() * 401); } while (i++ < numStars);

Did you notice that we sneakily updated the variable i in the test expression? Remember from Chapter 5 that the post-increment operator both returns the value of its operand and also adds 1 to that operand. The increment operator is very convenient (and common) when working with loops.

     



    ActionScript for Flash MX. The Definitive Guide
    ActionScript for Flash MX: The Definitive Guide, Second Edition
    ISBN: 059600396X
    EAN: 2147483647
    Year: 2002
    Pages: 780
    Authors: Colin Moock

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net