A sintaxe formal da estrutura de controle de While...End while é:
While(Expressão_Booleana)
instrução(ções)
End while
Um loop While...End while executa os comandos dentro do loop, enquanto a expressão booleana for verdadeira. Ele testa a expressão booleana no início do loop e não entra no loop, se a expressão for falsa.
É comum inicializar o valor testado na expressão Boolean imediatamente antes de entrar no loop While...End while. Inicializar o valor significa defini-lo como algo adequado, geralmente de modo que a expressão booleana será TRUE e While ... End while execute o loop.
A expressão booleana deve ser definida por algo dentro do loop, ou então o loop vai continuar para sempre. O loop seguinte continua para sempre, porque Infinito sempre é VERDADEIRO:
Infinito:=True
While(Infinito)
End while
Se você se encontra em tal situação, onde um método está executando descontroladamente, você pode usar o rastreamento instalações para parar o loop e rastrear o problema. Para mais informações sobre um método de rastreamento, consulte a seção Depurador.
CONFIRM("Adicionar um novo registro?")
While(OK=1)
ADD RECORD([aTabela])
End while
Neste exemplo, a variável de sistema OK é definida pelo comando antes do loop iniciar. Se o usuário clicar no botão OK na caixa de diálogo, a variável de sistema OK é definido como 1 e o loop é iniciado. Caso contrário, a variável de sistema OK é definida como 0 e o loop é ignorado. Uma vez que o loop for iniciado, o comando ADD RECORD mantém o loop porque ele define a variável de sistema OK a 1 quando o usuário salva o registro. Quando o usuário cancela (não salva) o último registro, a variável de sistema OK é definida como 0 e o loop para.