ARGOMENTO
about_For
DESCRIZIONE BREVE
Descrive un comando del linguaggio che è possibile utilizzare per
eseguire istruzioni in base a un test condizionale.
DESCRIZIONE DETTAGLIATA
L'istruzione For, nota anche come ciclo For, è un costrutto del
linguaggio che è possibile utilizzare per la creazione di un ciclo che
esegue i comandi di un blocco di comandi per tutto il tempo in cui una
condizione specifica restituisce il valore true.
Un tipico utilizzo del ciclo For consiste nello scorrere una
matrice di valori e operare su un sottoinsieme di tali valori.
Nella maggior parte dei casi, se si desidera scorrere tutti i
valori in una matrice, potrebbe essere preferibile utilizzare
un'istruzione Foreach.
Sintassi
Di seguito viene illustrata la sintassi dell'istruzione For.
for (<inizializzazione>; <condizione>; <ripetizione>)
{<elenco di istruzioni>}
Il segnaposto <inizializzazione> rappresenta uno o più comandi,
separati da virgole, eseguiti prima dell'inizio del ciclo. La parte
<inizializzazione> dell'istruzione viene in genere utilizzata per creare e
inizializzare una variabile con un valore iniziale.
Tale variabile costituirà quindi la base per la condizione da
verificare nella parte successiva dell'istruzione For.
Il segnaposto <condizione> rappresenta la parte dell'istruzione For
che restituisce un valore booleano true o false. In Windows
PowerShell la condizione viene valutata a ogni esecuzione del
ciclo For. Se l'istruzione restituisce true, vengono eseguiti i
comandi inclusi nel blocco di comandi, quindi l'istruzione
viene valutata di nuovo. Se l'istruzione restituisce ancora
true, vengono nuovamente eseguiti i comandi inclusi nell'elenco di
istruzioni. Il ciclo viene ripetuto fino a quando la condizione non
risulta false.
Il segnaposto <ripetizione> rappresenta uno o più comandi,
separati da virgole, eseguiti a ogni ripetizione del ciclo.
In genere, questa parte viene utilizzata per modificare una
variabile verificata nella parte <condizione> dell'istruzione.
Il segnaposto <elenco istruzioni> rappresenta un set di uno o
più comandi che vengono eseguiti ogni volta che il ciclo viene immesso o
ripetuto. Il contenuto dell'elenco di istruzioni è racchiuso
tra parentesi graffe.
Esempi
Un'istruzione For deve essere almeno costituita dalle parti
<inizializzazione>, <condizione> e <ripetizione> racchiuse tra
parentesi e da un comando tra parentesi graffe all'interno della
parte <elenco istruzioni>.
Nei primi esempi tra quelli seguenti il codice è stato aggiunto di
proposito esternamente all'istruzione For. Negli esempi successivi il
codice è integrato all'interno dell'istruzione for.
Nell'istruzione For seguente, ad esempio, viene ripetutamente
visualizzato il valore della variabile $i fino a quando non si
interrompe manualmente l'esecuzione del comando premendo CTRL+C.
$i = 1
for (;;){Write-Host $i}
È possibile aggiungere ulteriori comandi all'elenco di
istruzioni affinché il valore di $i venga incrementato di 1 a ogni
esecuzione del ciclo, come illustrato nell'esempio seguente:
for (;;){$i++; Write-Host $i}
Fino a quando non si interrompe l'esecuzione del comando
premendo CTRL+C, l'istruzione visualizzerà ripetutamente il
valore della variabile $i a ogni incremento di 1 conseguente a ogni
esecuzione del ciclo.
Anziché modificare il valore della variabile nella parte <elenco
istruzioni> dell'istruzione For, è possibile utilizzare la parte
<ripetizione> come segue.
$i=1
for (;;$i++){Write-Host $i}
Questa istruzione viene eseguita in modo continuo fino a quando
non si interrompe manualmente l'esecuzione del comando premendo
CTRL+C.
Impostando una condizione, tramite la parte <condizione>
dell'istruzione For, è possibile terminare il ciclo For quando la
condizione restituisce false. Nell'esempio seguente il ciclo For
viene eseguito per tutto il tempo in cui il valore di $i è minore o
uguale a 10.
$i=1
for(;$i -le 10;$i++){Write-Host $i}
Anziché creare e inizializzare la variabile esternamente
all'istruzione For, è possibile eseguire questa operazione
all'interno del ciclo For utilizzando la parte <inizializzazione>
dell'istruzione.
for($i=1; $i -le 10; $i++){Write-Host $i}
È possibile utilizzare ritorni a capo, anziché punti e virgola, per
delimitare le parti <inizializzazione>, <condizione> e <ripetizione>
dell'istruzione For. Nell'esempio seguente viene illustrata la sintassi
dell'istruzione For in questo formato alternativo.
for (<inizializzazione>
<condizione>
<ripetizione>){
<elenco istruzioni>
}
Tale formato alternativo dell'istruzione For può essere
utilizzato nei file script e nel prompt dei comandi di Windows
PowerShell. È tuttavia più semplice utilizzare la sintassi
dell'istruzione For nel formato con i punti e virgola quando si
immettono comandi interattivi al prompt dei comandi.
Il ciclo For è più flessibile del ciclo Foreach, in quanto
consente di incrementare i valori in una matrice o un insieme
tramite l'utilizzo di criteri. Nell'esempio seguente la
variabile $i viene incrementata di 2 nella parte <ripetizione>
dell'istruzione for.
for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}
VEDERE ANCHE
about_Comparison_Operators
about_Foreach