4D v13.4

While...End while

Home

 
4D v13.4
While...End while

While...End while  


 

 

The formal syntax of the While...End while control flow structure is:

 While(Boolean_Expression)
    statement(s)
 End while

A While...End while loop executes the statements inside the loop as long as the Boolean expression is TRUE. It tests the Boolean expression at the beginning of the loop and does not enter the loop at all if the expression is FALSE.

It is common to initialize the value tested in the Boolean expression immediately before entering the While...End while loop. Initializing the value means setting it to something appropriate, usually so that the Boolean expression will be TRUE and While...End while executes the loop.

The Boolean expression must be set by something inside the loop or else the loop will continue forever. The following loop continues forever because NeverStop is always TRUE:

 NeverStop:=True
 While(NeverStop)
 End while

If you find yourself in such a situation, where a method is executing uncontrolled, you can use the trace facilities to stop the loop and track down the problem. For more information about tracing a method, see the chapter Debugging.

Example  

 CONFIRM("Add a new record?") ` The user wants to add a record?
 While(OK=1) ` Loop as long as the user wants to
    ADD RECORD([aTable]` Add a new record
 End while ` The loop always ends with End while

In this example, the OK system variable is set by the CONFIRM command before the loop starts. If the user clicks the OK button in the confirmation dialog box, the OK system variable is set to 1 and the loop starts. Otherwise, the OK system variable is set to 0 and the loop is skipped. Once the loop starts, the ADD RECORD command keeps the loop going because it sets the OK system variable to 1 when the user saves the record. When the user cancels (does not save) the last record, the OK system variable is set to 0 and the loop stops.

 
PROPERTIES 

Product: 4D
Theme: Language definition

 
SEE ALSO 

Case of...Else...End case
Control Flow
For...End for
If...Else...End if
Repeat...Until