Árvore de páginas

Sintaxis

 

EXIT

 

 

Propósito

 

El comando EXIT genera la salida de un ciclo de repetición WHILE ... ENDDO o FOR ... NEXT, transferencia de un flujo de ejecución del programa a la primera línea de instrucción inmediatamente después del ENDDO o NEXT.

 

 

Argumentos

 

Ninguno.

 

 

Utilización

 

El comando EXIT se utiliza para forzar la finalización de una estructura de repetición WHILE ... ENDDO o FOR ... NEXT, incluso considerando que la condición de repetición del WHILE aún permanezca verdadera o el contador del FOR ... NEXT aún no haya alcanzado su límite.

 

 

Ejemplos

 

En la siguiente función, la ejecución se finaliza cuando el segundo elemento del array aAlmox esté completado con "N", considerando incluso cuando las condiciones aún sean verdaderas.

 

// Función de cálculo

 

FUNCTION CalcGrao(nSacas, aAlmox)

 

LOCAL nPos := 0

LOCAL nReserva := 0

LOCAL nSoma := 0

 

WHILE nPos < LEN(aAlmox) .AND. nReserva < nSacas

          nPos++

 

          IF aAlmox[nPos, 2] == "N"

               EXIT

          ENDIF

 

          nSoma := nReserva + aAlmox[nPos]

 

          IF nSoma <= nSacas

               nReserva := nSoma

          ELSE

               nReserva := nSacas

          ENDIF

ENDDO

 

RETURN nReserva

 

 

Así como en la función anterior, basada en el WHILE, la ejecución de la siguiente función se finaliza cuando el segundo elemento del array aAlmox esté completada con "N" o cuando la cantidad reservada sea igual a la cantidad de sacas solicitadas, considerando incluso que aún no se alcanzó el límite de elementos del array.

 

// Función de cálculo

 

FUNCTION CalcGrao(nSacas, aAlmox)

 

LOCAL nPos := 0

LOCAL nReserva := 0

LOCAL nSoma := 0

 

FOR nPos := 1 TO LEN(aAlmox)

          IF nReserva == nSacas .OR. aAlmox[nPos, 2] == "N"

                EXIT

          ENDIF

 

          nSoma := nReserva + aAlmox[nPos, 1]

 

          IF nSoma <= nSacas

                nReserva := nSoma

          ELSE

                nReserva := nSacas

          ENDIF

NEXT nPos

 

RETURN nReserva

  • Sem rótulos