Para repetir o mesmo grupo de comandos sucessivamente, utilize uma das estruturas circulares. Estão disponíveis vários tipos de ciclos. Cada tipo fornece uma forma diferebte para sair do ciclo, baseado num teste condicional.
Os comandos do ciclo ou relacionados com ciclos residem nos menus Controlo e Transferências do Editor de programas.
Quando inserir uma das estruturas circulares, o modelo é inserido no local do cursor. Pode iniciar a introdução dos comandos que serão executados no ciclo.
Um ciclo For...EndFor utiliza um contador para controlar o número de vezes que o ciclo é repetido. A sintaxe do comando For é:
Nota: O valor final pode ser inferior ao valor inicial, desde que o incremento seja negativo.
For variável, início, fim [, incremento]
|
|
À |
Á |
 |
à |
|
À |
Variável utilizada como um contador |
|
Á |
Valor do contador utilizado pela primeira vez For é executado |
|
 |
Sai do ciclo quando a variável excede este valor |
|
à |
Adicionado ao contador nas vezes subsequentes For é executado (Se este valor opcional for omitido, o incremento é de 1.) |
Quando For for executado, o valor da variável é comparado ao valor final. Se a variável não exceder end, o ciclo é executado; caso contrário, o controlo salta para o comando seguinte EndFor.
Nota: O comando For incrementa automaticamente a variável do contador para que a função ou o programa possa sair do ciclo após um determinado número de repetições.
No fim do ciclo (EndFor), o comando volta novamente ao comando For, em que a variável é incrementada e comparada com end.
Por exemplo:
|
For i,0,5,1 Disp i À EndFor Disp i Á |
|
À |
Mostra 0, 1, 2, 3, 4 e 5. |
|
Á |
Mostra 6. Quando a variável incrementa para 6, o ciclo não é executado. |
Nota: Pode declarar a variável do contador como local se não necessitar de ser guardada após a paragem do programa ou da função.
Um ciclo While...EndWhile repete um bloco de comandos desde que uma condição especificada seja verdadeira. A sintaxe do comando While é:
Condição While
Quando executar While, a condição é avaliada. Se a condição for verdadeira, o ciclo é executado; caso contrário, o controlo salta para o comando seguinte EndWhile.
Nota: O comando While não muda automaticamente a condição. Tem de incluir comandos que permitam à função ou ao programa sair do ciclo.
No fim do ciclo (EndWhile), o controlo volta novamente para o comando While, em que a condição é reavaliada.
Para executar o ciclo pela primeira vez, a condição tem de começar por ser verdadeira.
| • | Quaisquer variáveis referenciadas na condição têm de ser definidas antes do comando While. (Pode construir os valores para a função ou o programa, ou pode pedir ao utilizador para introduzir os valores.) |
| • | O ciclo tem de conter os comandos que alteram os valores na condição, eventualmente fazendo com que seja falsa. Caso contrário, a condição é sempre verdadeira e a função ou o programa não podem sair do ciclo (chamado um ciclo infinito). |
Por exemplo:
|
0&x À While x<5 Disp x Á x+1&x  EndWhile Disp x à |
|
À |
Define x inicialmente. |
|
Á |
Mostra 0, 1, 2, 3 e 4. |
|
 |
Incrementa x. |
|
à |
Mostra 5. Quando x incrementa para 5, o ciclo não é executado. |
Um Loop...EndLoop cria um ciclo infinito, que é repetido indefinidamente. O comando Loop não tem qualquer argumento.
En geral, introduzem-se no ciclo comandos que lhe permitem sair do ciclo. Os comandos mais utilizados são: If, Exit, Goto e Lbl (etiqueta). Por exemplo:
|
0&x Loop Disp x x+1&x If x>5 À Exit EndLoop Disp x Á |
|
À |
Um comando If verifica a condição. |
|
Á |
Sai do ciclo e salta para aqui quando x incrementa para 6. |
Nota: O comando Exit sai do ciclo actual.
Neste exemplo, o comando If pode estar em qualquer parte do ciclo.
|
Quando o comando If está: |
O ciclo é: |
|
No início do ciclo |
Executado apenas se a condição for verdadeira. |
|
No fim do ciclo |
Executado pelo menos uma vez e repetido apenas se a condição for verdadeira. |
O comando If pode também utilizar um comando Goto para transferir o controlo do programa para um comando Lbl (etiqueta) especificado.
O comando Cycle transfere imediatamente o controlo do programa para a iteração seguinte de um ciclo (antes de a iteração actual estar completa). Este comando funciona com For...EndFor, While...EndWhile e Loop...EndLoop.
Apesar dos comandos Lbl (etiqueta) e Goto não serem especificamente comandos circulares, podem ser utilizados para criar um ciclo infinito. Por exemplo:
Tal como Loop...EndLoop, o ciclo deve conter comandos que permitem à função ou ao programa sair do ciclo.