about_For
Aggiornamento: maggio 2014
Si applica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0
ARGOMENTO
about_For
DESCRIZIONE BREVE
In questo articolo viene descritto un comando di linguaggio che è possibile usare per eseguire istruzioni in base in un test condizionale.
DESCRIZIONE LUNGA
L'istruzione For (nota anche come ciclo For) è un costrutto di linguaggio da usare per creare un ciclo che esegue comandi all'interno di un blocco, mentre una condizione specificata restituisce il valore True.
Un uso tipico del ciclo For è quello di eseguire l'iterazione di una matrice di valori e di operare su un sottoinsieme di tali valori. Nella maggior parte dei casi, se si desidera eseguire l'iterazione di tutti i valori presenti in una matrice, è possibile usare un'istruzione Foreach.
Sintassi
Di seguito viene illustrata la sintassi dell'istruzione For.
for (<init>; <condition>; <repeat>)
{<statement list>}
Il segnaposto <init> rappresenta uno o più comandi (separati da virgole), che vengono eseguiti prima dell'inizio del ciclo. In genere si usa la parte <init> dell'istruzione per creare e inizializzare una variabile con un valore iniziale. Tenere presente che la sintassi della virgola non funziona con le istruzioni di assegnazione, come illustrato nell'esempio seguente:
$ofs=",";$rs = "rs"; $cs = "cs"; for ($r = $rs, $c = $cs; $true;)
{ "r is '$r' and c is '$c'"; break }
Questa variabile verrà usata come base per la condizione da sottoporre a test nella parte successiva dell'istruzione For.
Il segnaposto <condition> rappresenta la parte dell'istruzione For che restituisce un valore booleano di True o False. Windows PowerShell® valuta la condizione a ogni esecuzione del ciclo For. Se l'istruzione ha valore True, vengono eseguiti i comandi presenti nel blocco e l'istruzione viene valutata nuovamente. Se la condizione ha valore True, vengono eseguiti di nuovo i comandi nell'elenco dell'istruzione. Il ciclo viene ripetuto fino a quando la condizione diventa False.
Il segnaposto <repeat> rappresenta uno o più comandi (separati da virgole), che vengono eseguiti ogni volta che si ripete il ciclo. In genere viene usato per modificare una variabile sottoposta a test nella parte <condition> dell'istruzione.
Il segnaposto <elenco di istruzioni> rappresenta un set di uno o più comandi che vengono eseguiti a ogni immissione o ripetizione del ciclo. I contenuti dell'elenco di istruzioni sono racchiusi da parentesi graffe.
Esempi
Come minimo, un'istruzione For necessita delle parentesi che circondano la parte <init>, <condition> e <repeat> dell'istruzione e di un comando racchiuso tra parentesi graffe nella parte <statement list> dell'istruzione.
Tenere presente che negli esempi seguenti si è scelto di mostrare codice esterno all'istruzione For. Negli esempi successivi, il codice viene integrato nell'istruzione For.
Ad esempio, l'istruzione For seguente consente di visualizzare costantemente il valore della variabile $i fino a quando l'utente interrompe manualmente usando i tasti CTRL+C.
$i = 1
for (;;){Write-Host $i}
È possibile aggiungere altri comandi nell'elenco di istruzioni in modo che il valore di $i venga incrementato di 1 ogni volta che il ciclo viene eseguito, come illustrato nell'esempio seguente.
for (;;){$i++; Write-Host $i}
Fino a quando non si interrompe il comando premendo CTRL + C, questa istruzione visualizza costantemente il valore della variabile $i, man mano che viene incrementato di 1 a ogni esecuzione del ciclo.
Invece di modificare il valore della variabile nella parte relativa all'elenco di istruzioni dell'istruzione For, è possibile usare la parte <repeat> dell'istruzione For, come illustrato.
$i=1
for (;;$i++){Write-Host $i}
Questa istruzione ancora verrà ripetuto fino a quando l'utente interrompe il comando premendo CTRL+C.
Impostando una condizione (tramite la parte <condition> dell'istruzione For), è possibile terminare il ciclo For quando la condizione restituisce False. Nell'esempio seguente viene eseguito il ciclo For con valore di $i minore o uguale a 10.
$i=1
for(;$i -le 10;$i++){Write-Host $i}
Invece di creare e inizializzare la variabile all'esterno dell'istruzione For, è possibile eseguire questa attività all'interno del ciclo For usando la parte <init> dell'istruzione For.
for($i=1; $i -le 10; $i++){Write-Host $i}
È possibile usare i ritorni a capo invece del punto e virgola per delimitare le parti <init>, <condition> e <repeat> dell'istruzione For. Nell'esempio seguente viene illustrata la sintassi dell'istruzione For in questo formato alternativo.
for (<init>
<condition>
<repeat>){
<statement list>
}
Questo modulo alternativo dell'istruzione For funziona in file di script di Windows PowerShell e nel prompt dei comandi di Windows PowerShell. Tuttavia, è più facile usare la sintassi dell'istruzione For con punto e virgola, quando si inseriscono comandi interattivi nel prompt.
Il ciclo For è più flessibile rispetto al ciclo Foreach poiché consente di incrementare i valori in una matrice o in una raccolta usando i modelli. Nell'esempio seguente, la variabile $i viene incrementata di 2 nella parte <repeat> dell'istruzione For.
for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i}
VEDERE ANCHE
about_Comparison_Operators
about_Foreach