Informazioni su Do
DESCRIZIONE BREVE
Esegue un elenco di istruzioni una o più volte, soggetto a una condizione While o Until.
DESCRIZIONE LUNGA
La parola chiave Do funziona con la parola chiave While o la parola chiave Until per eseguire le istruzioni in un blocco di script, soggetto a una condizione. A differenza del ciclo While correlato, il blocco di script in un ciclo Do viene sempre eseguito almeno una volta.
Un ciclo Do-While è una varietà del ciclo While. In un ciclo Do-While la condizione viene valutata dopo l'esecuzione del blocco di script. Come in un ciclo While, il blocco di script viene ripetuto fino a quando la condizione restituisce true.
Come un ciclo Do-While , un ciclo Do-Until viene sempre eseguito almeno una volta prima della valutazione della condizione. Tuttavia, il blocco di script viene eseguito solo mentre la condizione è false.
Le parole chiave continua e interruzione del controllo del flusso possono essere usate in un ciclo Do-While o in un ciclo Do-Until .
Sintassi
Di seguito viene illustrata la sintassi dell'istruzione Do-While :
do {<statement list>} while (<condition>)
Di seguito viene illustrata la sintassi dell'istruzione Do-Until :
do {<statement list>} until (<condition>)
L'elenco di istruzioni contiene una o più istruzioni eseguite ogni volta che il ciclo viene immesso o ripetuto.
La parte della condizione dell'istruzione viene risolta su true o false.
Esempio
L'esempio seguente di un'istruzione Do conta gli elementi in una matrice finché non raggiunge un elemento con un valore 0.
C:\PS> $x = 1,2,78,0
C:\PS> do { $count++; $a++; } while ($x[$a] -ne 0)
C:\PS> $count
3
Nell'esempio seguente viene usata la parola chiave Until. Si noti che l'operatore non uguale a (-ne
) viene sostituito dall'operatore uguale a (-eq
).
C:\PS> $x = 1,2,78,0
C:\PS> do { $count++; $a++; } until ($x[$a] -eq 0)
C:\PS> $count
3
Nell'esempio seguente vengono scritti tutti i valori di una matrice, ignorando qualsiasi valore minore di zero.
do {
if ($x[$a] -lt 0) { continue }
Write-Host $x[$a]
}
while (++$a -lt 10)