about_Break

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

Insira a introdução aqui.

TÓPICO

about_Break

DESCRIÇÃO BREVE

Descreve uma instrução que você pode usar para sair imediatamente das instruções Foreach, For, While, Do ou Switch.

DESCRIÇÃO LONGA

Quando uma instrução Break aparece em um loop, como um loop Foreach, For, Switch ou While, a instrução Break faz com que o Windows PowerShell saia imediatamente do loop. Em um constructo Switch que não faça loop, Break faz com que o Windows PowerShell saia do bloco de código Switch.

Uma instrução Break pode incluir um rótulo que permite que você saia de loops incorporados. Um rótulo pode especificar qualquer palavra-chave de loop, como Foreach, For ou While, em um script. Quando você usa um rótulo, Break sai do loop especificado. Break sai do loop especificado, independentemente de qual loop a instrução Break está.

O exemplo a seguir mostra como usar a instrução Break para sair de uma instrução For:

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

Neste exemplo, a instrução Break sai do loop For quando a variável $i é igual a 1. Mesmo que a instrução For seja avaliada como True até $i ser maior que 10, o Windows PowerShell atinge a instrução Break na primeira vez em que o loop For é executado.

É mais comum usar a instrução Break em um loop no qual uma condição interna deve ser atendida. Considere o seguinte exemplo de instrução Foreach:

        $i=0
        $varB = 10,20,30,40
        foreach ($val in $varB)
        {    
            $i++
            if ($val -eq 30)
            {
                break
            }    
        }
        Write-Host "30 was found in array position $i"

Neste exemplo, a instrução Foreach itera a matriz $varB. Cada vez que o bloco de código é executado, a variável $i é incrementada em 1. A instrução If avalia como False as primeiras duas vezes que o loop é executado. A terceira vez em que o loop é executado, $i é igual a 3, e a variável $val é igual a 30. Neste ponto, a instrução Break é executada e o loop Foreach sai.

Você divide as outras instruções de loop da mesma maneira que você divide o loop Foreach. No exemplo a seguir, a instrução Break sai da instrução While quando uma exceção DivideByZeroException é interceptada usando a instrução Trap.

        $i = 3
        while ($true)
        {
            trap [DivideByZeroException] 
            {
                Write-Host "divide by zero trapped" 
                break
            }
            1 / $i--
        }

Uma instrução Break pode incluir um rótulo. Se você usar a palavra-chave Break com um rótulo, o Windows PowerShell sai do loop rotulado em vez de sair do loop atual. A sintaxe para um rótulo é a seguinte (este exemplo mostra um rótulo em um loop While):

        :myLabel while (<condition>) { <statement list>}

O rótulo é composto por dois pontos seguidos por um nome atribuído por você. O rótulo deve ser o primeiro token em uma instrução, e ele deve ser seguido pela palavra-chave de loop, como While.

No Windows PowerShell, apenas palavras-chave de loop, como Foreach, For e While podem ter um rótulo.

Break move a execução para fora do loop rotulado. Em loops incorporados, isso tem um resultado diferente da palavra-chave Break quando ela é usada por si só. Este exemplo esquemático tem uma instrução While com uma instrução For:

        :myLabel while (<condition 1>) 
        {
            for ($item in $items) 
            { 
                if (<condition 2>) { break myLabel } 
                $item = $x   # A statement inside the For-loop
            }
        }
        $a = $c  # A statement after the labeled While-loop

Se a condição 2 for avaliada como True, a execução do script pulará para a instrução após o loop rotulado. No exemplo, a execução é iniciada novamente com a instrução "$a = $c".

Você pode aninhar vários loops rotulados, conforme mostrado no exemplo esquemático a seguir.

        :red while (<condition1>)
        {
            :yellow while (<condition2>)
            {
                while (<condition3>)
                {
                    if ($a) {break}
                    if ($b) {break red}
                    if ($c) {break yellow}
                }
                # After innermost loop
            }
                # After \"yellow\" loop
        }
                # After \"red\" loop

Se a variável $b for avaliada como True, a execução do script continua após o loop ser rotulado como "red". Se a variável $c for avaliada como True, a execução do controle do script continua após o loop ser rotulado como "yellow".

Se a variável $a for avaliada como True, a execução continua após o loop mais interno. Nenhum rótulo é necessário.

O Windows PowerShell não limita a distância que os rótulos podem retomar a execução. O rótulo pode até mesmo passar o controle pelo script e limites de chamada de função.

A palavra-chave Break é usada para deixar a constructo Switch. Por exemplo, a seguinte instrução Switch usa instruções Break para testar a condição mais específica:

        $var = "word2"
        switch -regex ($var) 
        {
            "word2" 
            {
                Write-Host "Exact" $_ 
                break
            } 

            "word.*" 
            { 
                Write-Host "Match on the prefix" $_ 
                break
            }

            "w.*"
            {
                Write-Host "Match on at least the first letter" $_
                break 
            }
            
            default
            {
                Write-Host "No match" $_
                break
            }
        }

Neste exemplo, a variável $var é criada e inicializada como um valor de cadeia de caracteres de "word2". A instrução Switch usa a classe Regex para coincidir com o valor da variável primeiro com o termo "word2". (A classe Regex é uma expressão regular de classe do Microsoft .NET Framework.) Como o valor da variável e o primeiro teste na instrução Switch correspondem, o primeiro bloco de código na instrução Switch é executado.

Quando o Windows PowerShell atinge a primeira instrução Break, a instrução Switch sai. Se as quatro instruções Break são removidas do exemplo, todas as quatro condições são atendidas. Este exemplo usa a instrução break para exibir os resultados quando a condição mais específica é atendida.

CONSULTE TAMBÉM

about_Comparison_Operato

about_Continue

about_For

about_Foreach

about_Switch

about_Throw

about_Trap

about_Try_Catch_Finally

about_While