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