Home Previous section Next section

Loops Star


"Loops" make it easier to do an action multiple times. There are at least four types of loops: IF...GOTO, WHILE...WEND, DO...LOOP, and FOR...NEXT.


IF...GOTO

This program uses IF...GOTO to create a loop:

    x = 10

    start:
    PRINT x

    x = x + 1  
    (This adds 1 to x)

    IF x < 15 THEN GOTO start
Output:
    10
    11
    12
    13
    14

WHILE...WEND

The WHILE...WEND commands continue a loop until a specified expression is false.

To use WHILE...WEND:
  1. Place an expression after WHILE

  2. Enter a list of commands

  3. Place WEND at the end


Run the following:
    x = 10

    WHILE x < 15

      PRINT x

      x = x + 1

    WEND
Output (same as in previous example):
    10
    11
    12
    13
    14

DO...LOOP

DO...LOOP is exactly the same as WHILE...WEND, except it has at least two slight advantages. With DO...LOOP you can:
  1. Loop until an expression is true

  2. Loop at least one time regardless of whether the expression is true or not.


To use DO...LOOP:
  1. Specify whether the loop continues "while" the expression is true or "until" the expression is true, using the WHILE and UNTIL statements, respectively.

  2. Place an expression after WHILE/UNTIL

  3. Enter a list of commands

  4. Place LOOP at the end


The following uses the WHILE statement:
    x = 10

    DO WHILE x < 15

      PRINT x

      x = x + 1

    LOOP

This program uses the UNTIL statement:
    x = 10

    DO UNTIL x = 15

      PRINT x

      x = x + 1

    LOOP

They both output:
    10
    11
    12
    13
    14

If you place the expression at the end of the loop instead, the program goes through the loop at least once.
    x = 32

    DO

      PRINT x

      x = x + 1

    LOOP WHILE x < 5
This is the output because the loop was only gone through one time:
    32

FOR...NEXT

FOR...NEXT provides an easier way to create a loop.

    FOR x = 1 TO 5

      PRINT x

    NEXT x
Output:
    1
    2
    3
    4
    5

TIP: The X after NEXT is optional (unless you have a loop within a loop).


Also, you can use the STEP attribute to specify how much X will be increased each time through the loop.
    FOR x = 1 TO 5 STEP 2

      PRINT x

    NEXT x
Output:
    1
    3
    5

STOPPING LOOPS

To stop a loop prematurely, use the EXIT command, followed by either FOR or DO.
    FOR x = 1 TO 5

      PRINT x

      IF (x = 3) THEN EXIT FOR

    NEXT x
Output:
    1
    2
    3
(NOTE: This command only works with the DO...LOOP and FOR...NEXT commands, not with WHILE...WEND or IF...GOTO.)


Next section


Feel free to distribute this tutorial, upload it to your website, link to it from your site, etc.

http://www.geocities.com/progsharehouse/qbtutor
Mirror: http://development.freeservers.com/qbtutor