Le strutture di controllo consentono di intervenire sul flusso di
esecuzione del programma.
Senza di esse, il programma seguirebbe una logica unidirezionale, eseguendo le istruzioni da sinistra a destra e dall’alto al basso.
In questo modo c'è invece la possibilità di modificare l’ordine delle istruzioni utilizzando strutture decisionali e strutture iterative.
In VB.NET le strutture decisionali sono:
La sintassi può essere a riga singola o a blocco, a seconda se, al determinarsi delle condizioni, si vuole eseguire una o più istruzioni.
Si basa su un’unica espressione di prova che viene valutata una sola volta all’inizio della struttura stessa. Il risultato di tale espressione viene confrontato con il valore di ciascuna istruzione Case della struttura e in caso di corrispondenza viene eseguito il blocco di istruzioni ad esso associato.
L’istruzione Do…Loop prevede numerose varianti, ciascuna delle quali valuta una condizione numerica che consente di determinare se continuare o meno l’esecuzione.
Come per la struttura If…Then, la condizione deve essere rappresentata da un valore o da un’espressione che risulti False (uguale a zero) o True (diversa da zero)
A differenza dei cicli Do, i cicli For utilizzano una variabile contatore il cui valore aumenta o diminuisce durante ciascuna iterazione del ciclo. La sintassi è la seguente:
Gli argomenti contatore, inizio, fine e incremento sono numerici.
L’argomento incremento può essere positivo o negativo.
Se non si imposta l’istruzione Step, l’argomento incremento viene automaticamente impostato su 1.
Durante l’esecuzione del ciclo For:
La sintassi del ciclo For Each…Next è la seguente:
Senza di esse, il programma seguirebbe una logica unidirezionale, eseguendo le istruzioni da sinistra a destra e dall’alto al basso.
In questo modo c'è invece la possibilità di modificare l’ordine delle istruzioni utilizzando strutture decisionali e strutture iterative.
In VB.NET le strutture decisionali sono:
- If … Then
- If … Then … Else
- Select Case
- Do … Loop
- For … Next
- For Each … Next
If…Then
La struttura If…Then consente di eseguire una o più istruzioni in base alle condizioni specificate.La sintassi può essere a riga singola o a blocco, a seconda se, al determinarsi delle condizioni, si vuole eseguire una o più istruzioni.
Se la condizione risulta vera, vengono eseguite tutte le istruzioni successive alla parola chiave Then. Nella struttura If…Then a riga singola non viene utilizzata alcuna istruzione End If, mentre se si desidera eseguire più righe di codice quando la condizione risulta True, è necessario utilizzare la sintassi a blocco If…Then…End If. |
If…Then…Else
La struttura If…Then…Else consente di definire più blocchi di istruzioni di cui uno solo viene eseguito.Viene verificata la prima condizione, se risulta falsa viene verificata la seconda e così via finchè non viene individuata una condizione che risulta vera e viene quindi eseguito il blocco di istruzioni corrispondente. Se le istruzioni ElseIf vengono utilizzate per confrontare la stessa espressione con valori diversi, la sintassi potrebbe risultare estremamente laboriosa, per cui è consigliabile utilizzare una struttura decisionale Select Case. |
Select Case
Select Case è analoga a If…Then…Else, ma migliora la leggibilità del codice nel caso di più scelte.Si basa su un’unica espressione di prova che viene valutata una sola volta all’inizio della struttura stessa. Il risultato di tale espressione viene confrontato con il valore di ciascuna istruzione Case della struttura e in caso di corrispondenza viene eseguito il blocco di istruzioni ad esso associato.
È presente anche un blocco facoltativo Case Else che viene eseguito se nessuno dei valori
dell’elenco di espressioni corrisponde all’espressione di prova.
Mentre l’istruzione Select Case valuta un’espressione solo una volta
all’inizio della struttura, la struttura If…Then…Else può valutare
un’espressione diversa per ogni istruzione ElseIf. È possibile sostituire la struttura If…Then…Else con una struttura Select Case solo se ogni istruzione If ed ElseIf valuta la stessa espressione. |
Do…Loop
Questa struttura consente di eseguire un blocco di istruzioni per un numero di volte imprecisato.L’istruzione Do…Loop prevede numerose varianti, ciascuna delle quali valuta una condizione numerica che consente di determinare se continuare o meno l’esecuzione.
Come per la struttura If…Then, la condizione deve essere rappresentata da un valore o da un’espressione che risulti False (uguale a zero) o True (diversa da zero)
L’esecuzione prevede innanzitutto la verifica della condizione, se risulta falsa tutte le istruzioni vengono ignorate,
se invece risulta vera le istruzioni vengono
eseguite e, dopo la riesecuzione dell’istruzione Do While, la condizione
viene nuovamente verificata. Un’altra variante consiste nello scrivere il termine "while" dopo il loop anzichè dopo il do, questa variante consente di eseguire le istruzioni e di verificare la condizione al termine di ciascuna esecuzione. In questo modo le istruzioni vengono eseguite almeno una volta. Altre due opzioni sono analoghe alle precedenti, ma utilizzano "Until" al posto di "While", in questo modo il ciclo continua finchè la condizione risulta falsa anzichè vera. |
For…Next
Se è necessario eseguire le istruzioni per un numero di volte specifico, è consigliabile utilizzare un ciclo For…Next.A differenza dei cicli Do, i cicli For utilizzano una variabile contatore il cui valore aumenta o diminuisce durante ciascuna iterazione del ciclo. La sintassi è la seguente:
For contatore = inizio To fine [ Step incremento] istruzioni Next [contatore] |
L’argomento incremento può essere positivo o negativo.
Se non si imposta l’istruzione Step, l’argomento incremento viene automaticamente impostato su 1.
Durante l’esecuzione del ciclo For:
- L’argomento contatore viene impostato sul valore dell’argomento inizio.
- Viene verificato se l’argomento contatore è maggiore dell’argomento fine. In tal caso il ciclo termina.
- Se l’argomento incremento è negativo, viene verificato se l’argomento contatore è minore dell’argomento fine.
- Vengono eseguite le istruzioni.
- L’argomento contatore viene incrementato di 1 oppure in base all’argomento incremento, se specificato.
- Vengono ripetuti i passaggi da 2 a 4.
For Each…Next
Il ciclo For Each…Next è simile al ciclo For…Next, ma anziché ripetere le istruzioni il numero di volte specificato, ripete un gruppo di istruzioni per ciascun elemento di un insieme di oggetti o di una matrice. Ciò risulta particolarmente utile se non si conosce il numero di elementi di un insieme.La sintassi del ciclo For Each…Next è la seguente:
For Each elemento In gruppo istruzioni Next elemento |
Commenti
Posta un commento