Introduction

Language Structure

IB Statements

File System

Comet 32 Runtime

Index

ON/GOTO statement

Syntax: ON numeric-argument GOTO statement-list
Discussion: The ON/GOTO statement transfers program control to a specific statement-label based on the integer portion of the numeric-argument.

The numeric-argument may be a single element numeric variable, a numeric array element, a numeric expression, or a numeric function.

The statement-list contains a minimum of three statement-labels, separated by commas. The integer portion of the numeric-argument determines which statement-label to use, based on a simple set of rules.

If there are only three statement-labels, the rules are:

  Value of numeric-argument   Branch to statement-label
  ===========================================================
  negative                    first statement-label
  zero                        second statement-label
  positive                    third statement-label
If there are more than three labels, they represent positive integer values of the numeric-argument, as follows:
  Value of numeric-argument   Branch to statement-label
  ===========================================================
  negative                    first statement-label
  zero                        second statement-label
  1                           third statement-label
  2                           fourth statement-label
  3                           fifth statement-label
  etc.
Note: If the value of the numeric-argument plus 2 is greater than the number of branch labels in the statement-list, program control is transferred to the last branch label in the list.

For example, if the statement-list includes six statement-labels, the sixth label represents the branch-to point for numeric-argument values of 4 and greater.

See GOTO.

Example 1:
ON X GOTO 100,200,300,400,500
In the above example, the integer value of the numeric variable X is used to determine where program control will be transferred.

For example, if X is less than zero, program control will be transferred to statement label 100. Likewise, if X equals 0, control will be transferred to statement label 200.

If X equals 1, control will be transferred to statement label 300, and if X equals 2, control will be transferred to statement label 400.

If X is greater than or equal to 3, program control will be transferred to the last statement-label on the list, in this case statement 500.

Example 2:
ON CRLIMIT - ARTOTAL GOTO 100,100,200
In this example, the numeric-argument is the expression:
  CRLIMIT - ARTOTAL
The integer portion of this expression is used to determine where program control will be transferred.

For example, if the expression yields a negative or zero value (indicating that ARTOTAL is greater or equal to zero), control will be transferred to statement-label 100.

If the expression yields a value of 1 or more, program control will be transferred to statement-label 200.