# For..next

O comando de controle for..next cria uma construção de iteração de script com um contador. Os comandos dentro do loop incluídos entre for e next serão executados para cada valor da variável do contador, entre os limites inferior e superior especificados.

Sintaxe:

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

As expressões expr1, expr2 e expr3 serão avaliadas somente na primeira vez que o loop é inserido. O valor da variável counter pode ser alterado por comandos dentro da referência circular, entretanto, essa não é uma prática de programação recomendável.

Se uma cláusula exit for for encontrada dentro do loop, a execução do script será transferida para o primeiro comando após a cláusula next, indicando o fim do loop. Uma cláusula exit for pode ser transformada em condicional pelo uso opcional de um sufixo when ou unless.

Nota informativaComo o comando for..next é um comando de controle e, portanto, termina com um ponto e vírgula ou com um fim de linha, cada uma das três cláusulas possíveis (for..to..step,exit for e next) não deve ultrapassar o limite da linha.

Argumentos:

Argumentos

| Argumento | Descrição |
| --- | --- |
| counter | Um nome de variável. Se counter for especificado depois de next, ele deverá ter o mesmo nome de variável que a encontrada após o for correspondente. |
| expr1 | Uma expressão que determina o primeiro valor da variável counter para o qual o loop deve ser executado. |
| expr2 | Uma expressão que determina o último valor da variável counter para o qual o loop deve ser executado. |
| expr3 | Uma expressão que determina o valor que indica o incremento da variável counter cada vez que o loop é executado. |
| condition | uma expressão lógica de avaliação como True ou False. |
| statements | Qualquer grupo de um ou mais comandos de script do Qlik Sense. |

Exemplo 1: Carregando uma sequência de arquivos

`// LOAD 
 files file1.csv..file9.csv` `for a=1 
 to 9`

> `LOAD * from 
>  file$(a).csv;`

`next`

Exemplo 2: Carregando um número aleatório de arquivos

Neste exemplo, presumimos que existem os arquivos de dados x1.csv, x3.csv, x5.csv, x7.csv e x9.csv. O carregamento é interrompido em um ponto aleatório usando a condição `if rand( 
 )<0.5 then`.

`for counter=1 
 to 9 step 2`

> `set filename=x$(counter).csv;` `if rand( 
>  )<0.5 then`
>
> > `exit for 
> >  unless counter=1`
>
> `end if` `LOAD  a,b 
>  from $(filename);`

`next`

## Saiba mais

* [For each..next](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/For%20Each.htm)
* [Next](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Next.htm)
* [To](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/To.htm)
* [Exit](https://help.qlik.com/pt-BR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptControlStatements/Exit.htm)