Voi siete qui: Guida introduttiva all'Editor di programmi > Utilizzo di loop per ripetere un gruppo di comandi

Utilizzo di loop per ripetere un gruppo di comandi

Per ripetere lo stesso gruppo di comandi in successione, utilizzare una delle strutture loop. Sono disponibili diversi tipi di loop. Ciascun tipo offre un modo diverso di uscita dal loop, sulla base di una prova condizionale.

I comandi loop e relativi ai loop sono elencati nei menu Strutture di controllo (Control) e Trasferimenti (Transfers) dell’Editor di programmi.

Quando si inserisce una delle strutture loop, alla posizione del cursore viene inserito il relativo modello. È quindi possibile iniziare a introdurre i comandi che verranno eseguiti all’interno del loop.

Loop For...EndFor

Un loop For...EndFor utilizza un contatore per controllare il numero di volte che il loop viene ripetuto. La sintassi del comando For è:

Nota: il valore finale può essere minore del valore iniziale, purché l’incremento sia negativo.

For

variabile,

inizio,

fine [,

[, incremento]

 

À

Á

Â

Ã

 

À

Variabile è utilizzata come contatore

Á

Valore del contatore utilizzato la prima volta che viene eseguito For

Â

Esce dal loop quando variabile supera questo valore

Ã

Aggiunto al contatore ad ogni successiva esecuzione di For (se questo valore opzionale viene omesso, incremento è 1).

Quando viene eseguito For, il valore di variabile viene confrontato con il valore di finale. Se variabile non è maggiore di finale, il loop viene eseguito; altrimenti l’esecuzione passa al successivo comando EndFor.

Nota: il comando For incrementa automaticamente la variabile contatore in modo che la funzione o il programma possa uscire dal loop dopo un certo numero di ripetizioni.

Alla fine del loop (EndFor), l’esecuzione torna indietro al comando For, dove la variabile viene incrementata e confrontata con finale.

Ad esempio:

For i,0,5,1

  Disp i  À

EndFor

Disp i  Á

 

À

Visualizza 0, 1, 2, 3, 4 e 5.

Á

Visualizza 6. Quando variabile arriva a 6, il loop non viene eseguito.

Nota: è possibile dichiarare la variabile contatore come locale se non deve essere salvata al termine della funzione o del programma.

Loop While...EndWhile

Un loop While...EndWhile ripete un blocco di comandi fino a quando una condizione specificata non è vera. La sintassi del comando While è:

While condizione

Quando While viene eseguito, la condizione viene controllata. Se la condizione è vera, il loop viene eseguito; altrimenti l’esecuzione passa al successivo comando EndWhile.

Nota: il comando While non cambia automaticamente la condizione. È necessario includere comandi che consentano alla funzione o al programma di uscire dal loop.

Alla fine del loop (EndWhile), l’esecuzione torna indietro al comando While, dove la condizione viene ricontrollata.

Per eseguire il loop la prima volta, la condizione deve essere inizialmente vera.

Qualsiasi variabile chiamata nella condizione deve essere impostata prima del comando While (è possibile integrare i valori nella funzione o nel programma, oppure è possibile richiedere all’utente di inserirli).
Il loop deve contenere comandi che cambiano i valori nella condizione, causandone alla fine una condizione falsa. Diversamente, la condizione è sempre vera e la funzione o il programma non possono uscire dal loop (loop infinito).

Ad esempio:

0&x  À

While x<5

  Disp x  Á

  x+1&x  Â

EndWhile

Disp x  Ã

 

À

Imposta inizialmente x.

Á

Visualizza 0, 1, 2, 3 e 4.

Â

Incrementa x.

Ã

Visualizza 5. Quando x incrementa a 5, il loop non viene eseguito.

Loop Loop...EndLoop

Loop...EndLoop crea un ciclo infinto, che si ripete senza fine. Il comando Loop non ha argomento.

In genere, nel loop si inseriscono comandi che consentono al programma di uscire dal loop. I comandi solitamente utilizzati sono: If, Exit, Goto e Lbl (etichetta). Ad esempio:

0&x

Loop

  Disp x

  x+1&x

  If x>5  À

    Exit

EndLoop

Disp x  Á

 

À

Un comando If verifica la condizione.

Á

Esce dal loop e passa direttamente qui quando x incrementa a 6.

Nota: il comando Exit esce dal loop corrente.

In questo esempio, il comando If può essere in qualsiasi punto del loop.

Quando il comando If è

Il loop viene

All’inizio del loop

Eseguito solo se la condizione è vera.

Alla fine del loop

Eseguito almeno una volta e ripetuto solo se la condizione è vera.

Il comando If può utilizzare anche un comando Goto per trasferire il controllo del programma a un comando Lbl (etichetta) specificato.

Ripetizione immediata di un loop

Il comando Cycle trasferisce immediatamente il controllo del programma alla successiva iterazione di un loop (prima che l’iterazione corrente sia completata). Questo comando funziona come For...EndFor, While...EndWhile e Loop...EndLoop.

Loop Lbl e Goto

Anche se i comandi Lbl (etichetta) e Goto non sono esattamene comandi loop, possono essere utilizzati per creare un loop infinito. Ad esempio:

Come con Loop...EndLoop, il loop dovrebbe contenere comandi che consentano alla funzione o al programma di uscire dal loop.

 

© 2006 - 2016 Texas Instruments Incorporated