expressão lógicaCondición reevaluada antes de cada iteración. El bucle continúa solamente mientras devuelva .T.
Guía AdvPLWHILE <expressão lógica> ... ENDDORepite un bloque de comandos mientras una expresión lógica permanezca verdadera.
WHILE ... ENDDO evalúa la condición antes de cada iteración. Si es verdadera (.T.), ejecuta el bloque; cuando es falsa (.F.), el procesamiento continúa después de ENDDO. EXIT termina inmediatamente el bucle y LOOP vuelve a WHILE, reevaluando la condición sin ejecutar el resto del bloque actual.
WHILE <expressão lógica> ... ENDDOexpressão lógicaCondición reevaluada antes de cada iteración. El bucle continúa solamente mientras devuelva .T.
comandosInstrucciones AdvPL ejecutadas en cada paso mientras la condición permanezca verdadera.
User Function ExWhilePares()
Local nNumero := 0
Local nSuma := 0
While nNumero <= 100
nSuma += nNumero
nNumero += 2
EndDo
MsgInfo("Suma de pares: " + CValToChar(nSuma))
ReturnLa condición se comprueba antes de cada paso. nNumero avanza de dos en dos hasta superar 100.
User Function ExWhileTabela()
DbSelectArea("SA1")
SA1->(DbGoTop())
While !SA1->(Eof())
ConOut(SA1->A1_COD + " - " + SA1->A1_NOME)
SA1->(DbSkip())
EndDo
ReturnEl bucle procesa cada registro hasta que EOF() indica el final del área. DbSkip() es indispensable para avanzar.
User Function ExWhileControle()
Local nItem := 0
While nItem < 20
nItem++
If nItem % 2 != 0
Loop
EndIf
If nItem > 10
Exit
EndIf
ConOut(CValToChar(nItem))
EndDo
ReturnEl contador se actualiza antes de LOOP. Se ignoran los valores impares y EXIT termina el bucle después del límite deseado.
© 2026 Usina.BR. Todos os direitos reservados. TOTVS, Protheus, Microsiga e seus respectivos logotipos são marcas de titularidade da TOTVS S.A. AdvPL é uma linguagem de programação desenvolvida pela TOTVS. O AdvPL Guia é um projeto independente, sem vínculo, representação, patrocínio ou afiliação com a TOTVS S.A., suas franquias ou representantes.