C5_FOR

FOR
 Execute a block of statements a specified number of times
------------------------------------------------------------------------------
 Syntax

     FOR <idCounter> := <nStart> TO <nEnd>
        [STEP <nIncrement>]
        <statements>...
        [EXIT]
        <statements>...
        [LOOP]
     NEXT

 Arguments

     <idCounter> is the name of the loop control or counter variable.  If
     the specified <idCounter> is not visible or does not exist, a private
     variable is created.

     <nStart> is the initial value assigned to <idCounter>.  If
     <nIncrement> is negative, <nStart> must be less than <nEnd>.

     TO <nEnd> defines the final value of <idCounter>.  If <nIncrement>
     is negative, <nStart> must be greater than <nEnd>; otherwise, <nStart>
     must be less than <nEnd>.

     STEP <nIncrement> defines the amount <idCounter> is changed for each
     iteration of the loop.  <nIncrement> can be either positive or negative.
     If the STEP clause is not specified, <idCounter> is incremented by one
     for each iteration of the loop.

     EXIT unconditionally branches control from within a FOR...NEXT
     construct to the statement immediately following the nearest NEXT
     statement.

     LOOP branches control to the most recently executed FOR or DO WHILE
     statement.

 Description

     FOR...NEXT is a control structure that executes a block of statements a
     specified number of times.  The control structure loops from the initial
     value of <idCounter> to the boundary specified by <nEnd>, moving through
     the range of values of the control variable for an increment specified
     by <nIncrement>.  All expressions in the FOR statement are reevaluated
     for each iteration of the loop.  The <nStart> and <nEnd> expressions,
     therefore, can be changed as the control structure operates.

     A FOR loop operates until <idCounter> is greater than <nEnd> or an EXIT
     statement is encountered.  Control then branches to the statement
     following the corresponding NEXT statement.  If a LOOP statement is
     encountered, control branches back to the current FOR statement.

     If <nIncrement> is a negative value, <idCounter> is decremented rather
     than incremented.  The FOR loop, however, continues until <idCounter> is
     less than <nEnd>.  This means that <nEnd> must be less than <nStart>
     when the FOR loop begins.

     FOR loops are useful for traversing arrays where <idCounter> is used as
     the array subscript.  See the example below.

     FOR...NEXT constructs may be nested within any other control structures
     to any depth.  The only requirement is that each control structure is
     properly nested.

 Examples

     .  This example traverses an array in ascending order:

        nLenArray := LEN(aArray)
        FOR i := 1 TO nLenArray
           <statements>...
        NEXT

     .  To traverse an array in descending order:

        nLenArray := LEN(aArray)
        FOR i := nLenArray TO 1 STEP -1
           <statements>...
        NEXT

See Also: AEVAL() BEGIN SEQUENCE DO CASE DO WHILE IF IF()

 

3 responses to “C5_FOR

  1. Pingback: C5 Flow Control | Viva Clipper !

  2. Pingback: C5 Statements | Viva Clipper !

  3. Pingback: C5_IF ( Statement ) | Viva Clipper !

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.