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

 

  • Sem rótulos