ARGOMENTO
    about_Break

DESCRIZIONE BREVE
    Descrive un'istruzione che è possibile utilizzare per uscire 
    immediatamente dalle istruzioni Foreach, For, While, Do o Switch.


DESCRIZIONE DETTAGLIATA
    Quando un'istruzione Break viene visualizzata in un ciclo, ad esempio 
    Foreach, For, Switch o While, l'istruzione Break provoca l'uscita 
    immediata di Windows PowerShell dal ciclo. In un costrutto Switch che 
    non esegue il ciclo, Break provoca l'uscita immediata di Windows 
    PowerShell dal blocco di codice di Switch.
 
 
    Un'istruzione Break può includere un'etichetta che consente di 
    uscire dai cicli incorporati. Un'etichetta può specificare 
    qualsiasi parola chiave del ciclo, ad esempio Foreach, For o 
    While, in uno script. Quando si utilizza un'etichetta, 
    l'istruzione Break esce dal ciclo specificato, indipendentemente 
    dal ciclo in cui si trova.


    Nell'esempio seguente viene illustrato come utilizzare 
    un'istruzione Break per uscire da un'istruzione For:


        for($i=1; $i -le 10; $i++)
        {
            Write-Host $i
            break
        }


    In questo esempio, l'istruzione Break causa l'uscita dal ciclo 
    For quando la variabile $i è uguale a 1. Anche se l'istruzione For 
    restituisce il valore True finché $i è maggiore di 10, Windows PowerShell 
    raggiunge l'istruzione Break alla prima esecuzione del ciclo For. 

    È più comune utilizzare l'istruzione Break in un ciclo in cui 
    deve essere soddisfatta una condizione interna. Si consideri 
    l'esempio di istruzione Foreach seguente:


        $i=0
        $varB = 10,20,30,40
        foreach ($val in $varB)
        {  
            $i++
            if ($val -eq 30)
            {
                break
            }  
        }
        Write-Host "30 è stato trovato nella posizione di matrice $i"


    In questo esempio, l'istruzione Foreach scorre la matrice $varB. 
    Ogni volta che viene eseguito il blocco di codice, la variabile 
    $i viene incrementata di 1. L'istruzione If restituisce False 
    alle prime due esecuzioni del ciclo. Alla terza esecuzione del 
    ciclo, $i è uguale a 3 e la variabile $val è uguale a 30. A 
    questo punto, viene eseguita l'istruzione Break che causa 
    l'uscita dal ciclo Foreach.


    L'uscita dalle altre istruzioni di ciclo avviene allo stesso modo 
    in cui si esce dal ciclo Foreach. Nell'esempio seguente, 
    l'istruzione Break causa l'uscita da un'istruzione While quando viene 
    intercettata un'eccezione DivideByZeroException mediante l'istruzione 
    Trap.


        $i = 3
        while ($true)
        {
            trap [DivideByZeroException] 
            {
                Write-Host "intercettata divisione per zero" 
                break
            }
            1 / $i--
        }


    Un'istruzione Break può includere un'etichetta. Se si utilizza la 
    parola chiave Break con un'etichetta, Windows PowerShell esce dal 
    ciclo etichettato anziché uscire dal ciclo corrente. La sintassi di 
    un'etichetta è la seguente (in questo esempio viene illustrata 
    un'etichetta in un ciclo While):


        :myLabel while (<condizione>) { <elenco istruzioni>}


    L'etichetta è costituita dai due punti seguiti da un nome assegnato 
    dall'utente. L'etichetta deve essere il primo token in un'istruzione 
    e deve essere seguita dalla parola chiave di ciclo, ad esempio While.
 

    In Windows PowerShell, solo le parole chiave di ciclo, ad esempio 
    Foreach, For e While, possono avere un'etichetta.


    Break provoca l'uscita dell'esecuzione dal ciclo etichettato. Nei 
    cicli incorporati, il risultato sarà diverso da quello ottenuto 
    quando si utilizza la parola chiave Break da sola. In questo 
    esempio viene presentata un'istruzione While con un'istruzione For:
 

        :myLabel while (<condizione 1>) 
        {
            for ($item in $items) 
            { 
                if (<condizione 2>) { break myLabel } 
                $item = $x  # Un'istruzione nel ciclo For }
        }
        $a = $c # Un'istruzione dopo il ciclo While etichettato


    Se la condizione 2 restituisce True, l'esecuzione dello script salta 
    all'istruzione successiva al ciclo etichettato. Nell'esempio, l'esecuzione 
    inizia nuovamente con l'istruzione "$a = $c". 


    È possibile nidificare molti cicli etichettati, come illustrato 
    nel seguente esempio.


        :red while (<condizione1>)
        {
            :yellow while (<condizione2>)
            {
                while (<condizione3>)
                {
                    if ($a) {break}
                    if ($b) {break red}
                    if ($c) {break yellow}
                }
                # Dopo il ciclo più interno
            }
                # Dopo il ciclo "yellow"
        }
                # Dopo il ciclo "red"


    Se la variabile $b restituisce True, l'esecuzione dello script 
    riprende dopo il ciclo con etichetta "red". Se la variabile $c 
    restituisce True, l'esecuzione del controllo di script riprende 
    dopo il ciclo con etichetta "yellow".


    Se la variabile $a restituisce True, l'esecuzione riprende dopo 
    il ciclo più interno. Non è necessaria alcuna etichetta.


    Windows PowerShell non limita la ripresa dell'esecuzione da parte 
    delle etichette. L'etichetta può anche passare il controllo attraverso 
    limiti di script e chiamata di funzione.


    La parola chiave Break è utilizzata per uscire dal costrutto 
    Switch. Ad esempio, nell'istruzione Switch riportata di seguito 
    vengono utilizzate le istruzioni Break per effettuare il testo della 
    condizione più specifica:


        $var = "parola2"
        switch -regex ($var) 
        {
            "parola2" 
            {
                Write-Host "Esatto" $_ 
                break
            } 

            "parola.*" 
            { 
                Write-Host "Corrispondenza con prefisso" $_ 
                break
            }

            "p.*"
            {
                Write-Host "Corrispondenza almeno con la prima 
                lettera" $_ break 
            }
            
            default
            {
                Write-Host "Nessuna corrispondenza" $_
                break
            }
        }


    In questo esempio, la variabile $var viene creata e inizializzata 
    sul valore stringa "parola2". L'istruzione Switch utilizza la 
    classe Regex per confrontare il valore della variabile con il termine 
    "parola2". La classe Regex è una classe dell'espressione regolare 
    Microsoft .NET Framework. Poiché il valore della variabile e il primo 
    test nell'istruzione Switch corrispondono, viene eseguito il primo blocco 
    di codice nell'istruzione Switch.


    Quando Windows PowerShell raggiunge la prima istruzione Break, 
    l'istruzione Switch causa l'uscita. Se le quattro istruzioni 
    Break vengono rimosse dall'esempio, vengono soddisfatte tutte e 
    quattro le condizioni. In questo esempio viene utilizzata 
    l'istruzione Break per visualizzare i risultati quando viene 
    soddisfatta la condizione più specifica. 


VEDERE ANCHE  
    about_Comparison_Operators
    about_For
    about_Foreach 
    about_Switch
    about_While




Argomenti della Guida