Sintaxe
EXIT
Propósito
O comando EXIT causa a saída de um ciclo de repetição WHILE ... ENDDO ou FOR ... NEXT, transferindo o fluxo de execução do programa para a primeira linha de instrução imediatamente seguinte ao ENDDO ou NEXT.
Argumentos
Nenhum.
Utilização
Utiliza-se o comando EXIT para forçar a finalização de uma estrutura de repetição WHILE ... ENDDO ou FOR ... NEXT, mesmo que a condição de repetição do WHILE ainda permaneça verdadeira ou o contador do FOR ... NEXT ainda não tenha atingido o seu limite.
Exemplos
Na função abaixo, a execução é finalizada quando o segundo elemento do array aAlmox estiver preenchido com “N”, mesmo que as condições ainda sejam verdadeiras.
// Função 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
Da mesma forma que na função anterior, baseada no WHILE, a execução da função abaixo é finalizada quando o segundo elemento do array aAlmox estiver preenchido com “N” ou quando a quantidade reservada for igual à quantidade de sacas solicitadas, mesmo que o limite de elementos do array ainda não tenha sido atingido.
// Função 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