Visual Basic
    • TUTORIAL
    • ESEMPI
    • RIFERIMENTI
    il mio computer

Strutture di ciclo

Le strutture del ciclo Visual Basic consentono di eseguire una serie di istruzioni un numero determinato di volte,  fino a quando una certa condizione restituisce True, oppure fino a quando restituisce False, un numero prestabilito di volte o una sola volta per ogni elemento di una raccolta.

Cicli While...End While

Esegue una serie di istruzioni contenute tra l'istruzione While ed End While fino a quando la condizione verificata nella prima istruzione While restituisce True.

Sintassi

While condizione
...
...
Continue While
...
...
Exit While
...
...
End While

Se la prima volta che l'istruzione While condizione viene eseguita restituisce False le istruzioni all'interno del ciclo non vengono mai eseguite e il ciclo termina, il programma passa subito all'esecuzione dell'istruzione contenuta dopo End While.
L'istruzione Continue While consente di passare subito alla nuova iterazione saltando eventuali istruzioni inserite dopo Continue While.
L'istruzione Exit While invece consente di uscire subito dal ciclo  passando ad eseguire l'istruzione contenuta dopo End While. Vediamo quì sotto tre esempi, il primo di While...End While, al secondo ho aggiunto l'istruzione Continue While e al terzo l'istruzione Exit While

Notare che all'interno di un ciclo While...End While deve essere sempre inserita una istruzione che incrementa o decrementa a seconda delle necessità la variabile o l'espressione che viene ad ogni ciclo valutata, altrimenti si verifica un ciclo infinito.

Esempio istruzione While...End While copia

Esempio istruzione While...End While con l'istruzione Continue While copia

Esempio istruzione While...End While con l'istruzione Exit While copia

Nel primo esempio vengono stampati tutti i numeri, da 0 a 15, anche nel secondo esempio vengono stampati tutti, tranne il numero 10, nel terzo esempio invece quando condizione è uguale a 10 si esce dal ciclo con l'istruzione Exit While, vengono quindi stampati solo i numeri da 0 a 9.

Cicli Do...Loop

La costruzione Do...Loop consente di testare una condizione all'inizio o alla fine di una struttura del ciclo. È inoltre possibile specificare se ripetere il ciclo fino a quando la condizione restituisce True o fino a quando la condizione restituisce False.
Se si desidera verificare la condizione all'inizio del ciclo questo và fatto dopo la parola riservata Do, se invece lo si vuol fare alla fine si deve fare dopo la parola riservata Loop.

Per eseguire il ciclo quando la condizione restituisce True si usa la parola riservata While, per eseguirlo invece quando la condizione restituisce False si usa la parola riservata Until. Vediamo la sintassi e gli esempi qui sotto, che verificano la condizione all'inizio del ciclo.

Sintassi

Do [While|Until] condizione
...
...
Exit Do
...
...
Loop [While|Until] condizione

Esempio Do While...Loop copia

Esempio Do Until...Loop copia

Nel primo esempio Do While condizione viene controllata e se risulta minore o uguale a 10 restituisce True, quindi il ciclo viene ripetuto fino a quando condizione diventa 11, quindi termina.
Nel secondo esempio Do Until condizione viene controllata e se risulta maggiore di 10 restituisce True quindi il ciclo termina, se invece risulta minore o uguale a 10 condizione restituisce False e di conseguenza il ciclo viene ripetuto. Entrambi gli esempi stampano il valore di condizione da 0 a 10.
Notare che entrambi gli esempi se dovessero restituire al primo confronto di condizione il valore opposto non verrebbe mai eseguito alcun ciclo.

Qui sotto vediamo invece come eseguire il confronto dopo la parola riservata Loop.

Esempio di Do...Loop While copia

Esempio Do..Loop Until copia

Notare invece che in questi due esempi almeno un ciclo viene sempre eseguito, perchè la prima verifica di condizione viene fatta al termine del primo ciclo.

Per uscire definitivamente da un ciclo Do...Loop si può usare l'istruzione Exit Do che può essere inserita all'interno di una struttura If...Then...End If che verifica una certa condizione per il quale quando restituisce True si rende necessaria l'uscita dal loop.

Cicli For...Next

Ripete un gruppo di istruzioni un numero specificato di volte.

Sintassi:

For contatore = inizio To fine Step passo
...
...
Continue For
...
Exit For
...
Next

le  parole riservate For, To e Next sono obbligatorie per creare la struttura, Step invece no, se non viene usata l'incremento sarà di 1.
contatore
è una variabile numerica che contienerà il valore per ogni iterazione che và da inizio a fine, passo è il valore di incremento di contatore ad ogni iterazione.
L'istruzione Continue For che di solito si usa all'interno di una struttura If...Then per verificare qualcosa permette di passare subito alla prossima iterazione saltando le istruzione all'interno del ciclo che si trovano dopo la suddetta istruzione.
Invece l'istruzione Exit For che si può ugualmente inserire all'interno della struttura If...Then per verificare qualcosa permette di uscire definitivamente dal ciclo For...Next. Vediamo un esempio sotto.

Esempio di For...Next copia

Esempio di For...Next con Continue For copia

In questo secondo esempio dove è stato inserito il comando Continue For notare che quando contatore è uguale a 10 e a 13 il valore non viene stampato, al suo posto viene stampata una riga vuota.