# For..next

L'istruzione di controllo for..next è un costrutto per la ripetizione di script con un contatore. Le istruzioni all'interno del ciclo incluso tra for e next verranno eseguite per ogni valore della variabile contatore tra i limiti inferiore e superiore specificati (inclusi).

Sintassi:

For counter = expr1 to expr2 [ step expr3 ]

[statements]

[exit for [ ( when | unless ) condition ]

[statements]

Next [counter]

Le espressioni expr1, expr2 ed expr3 vengono valutate solo la prima volta che il ciclo viene eseguito. Il valore della variabile counter può essere modificato dalle istruzioni all'interno del ciclo, tuttavia l'utilizzo di questa procedura di programmazione non è consigliato.

Se all'interno del ciclo è presente una clausola exit for, l'esecuzione dello script verrà trasferita alla prima istruzione dopo la clausola next indicando quindi la fine del ciclo. Una clausola exit for può essere resa condizionale dall'utilizzo opzionale di un suffisso when o unless.

Nota informaticaPoiché for..next è un'istruzione di controllo che termina con un punto e virgola o con un carattere di fine riga, ciascuna delle tre possibili clausole corrispondenti (for..to..step, exit for e next) non deve superare la lunghezza limite di una riga.

Argomenti:

Per argomenti

| Argomento | Descrizione |
| --- | --- |
| counter | Un nome di variabile. Se counter viene specificato dopo next, deve avere lo stesso nome di variabile rilevato dopo l'istruzione for corrispondente. |
| expr1 | Un'espressione che determina il primo valore della variabile counter per cui deve essere eseguito il ciclo. |
| expr2 | Un'espressione che determina il valore massimo della variabile counter per cui deve essere eseguito il ciclo. |
| expr3 | Un'espressione che determina il valore che indica l'incremento della variabile counter ogni volta che il ciclo è stato eseguito. |
| condition | Un'espressione logica che restituisce un valore True o False. |
| statements | Qualsiasi gruppo di una o più istruzioni dello script di QlikView. |

Esempio 1: Caricamento di una sequenza di file

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

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

`next`

Esempio 2: Caricamento di un numero casuale di file

In questo esempio si presuppone l'utilizzo dei file di dati x1.csv, x3.csv, x5.csv, x7.csv e x9.csv. Il caricamento viene interrotto in un punto casuale mediante la condizione `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`

## Ulteriori informazioni

* [For each..next](https://help.qlik.com/it-IT/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/For%20Each.htm)
* [Next](https://help.qlik.com/it-IT/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Next.htm)
* [To](https://help.qlik.com/it-IT/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/To.htm)
* [Exit](https://help.qlik.com/it-IT/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/Scripting/ScriptControlStatements/Exit.htm)