AnimationsTopNumbingly boring

Numbingly boring

We can see examples where we can get interesting behavior through repeating the same instructions without depending on changes in the mouse position to make things interesting. Consider the following program which draws a set of railroad tracks one tie at a time.

    object 
       inherits graphicApplication.size(400,400)
    
       var tieXPosition:Number := firstTieX

       method onMousePress(pt: Point) -> Done 
          if (tieXPosition < canvas.width) then 
              def tie:Graphic2D = 
                  filledRect.at(tieXPosition @ tieTop)size(tieWidth,tieLength)on(self.canvas)
              tie.color:=tieColor
              tieXPosition := tieXPosition + tieWidth + tieSpacing
          
          topRail.sendToFront
          bottomRail.sendToFront
       
    
    

It is painful to have to click repeatedly to get the ties drawn. Instead we would like the computer to continue drawing ties while they are still on the screen. Grace provides the while statement, or while loop, to perform repeated actions. Grace includes other looping constructs that we will see later in the semester.

The syntax of a while statement is:

    while condition do 
        ...
    

Now we can draw all of our railroad ties using a while loop, WhileRailroad drawing all of the ties at once.

We talked about while loops where more than one variable changes. The example involved drawing a laundry basket


AnimationsTopNumbingly boring