Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 é exibida em um loop, como um loop foreach, for ou while, a instrução break faz com que o PowerShell saia imediatamente do loop. Em uma construção de switch, Break faz com que o PowerShell saia do bloco de código de alternância.
Uma instrução break pode incluir um rótulo que permite que você saia de loops inseridos. Um rótulo pode especificar qualquer palavra-chave loop, como foreach, for ou while, em um script.
O exemplo a seguir mostra como usar uma 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. Embora a instrução for avaliada como true até que $i seja maior que 10, o PowerShell alcança a instrução break na primeira vez em que o loop for é executado.
É mais comum usar a instrução break em um loop em que 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 de $varB. Cada vez que o bloco de código é executado, a variável $i é incrementada em 1. A instrução If é avaliada como false as duas primeiras vezes que o loop é executado. Na 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 é encerrado.
Você sai das outras instruções de looping da mesma maneira que sai do loop foreach. No exemplo a seguir, a instrução break sai de uma 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 PowerShell sairá do loop rotulado em vez de sair do loop atual. A sintaxe de um rótulo é a seguinte (Este exemplo mostra um rótulo em um loop while):
: myLabel while ( <condition> ) { <statement list> }
O rótulo é um ponto-e-vírgula seguido de um nome que você atribui. O rótulo deve ser o primeiro token em uma instrução e deve ser seguido pela palavra-chave de loop, como While.
No PowerShell, somente 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 inseridos, isso tem um resultado diferente do que a palavra-chave break tem quando ele é usado 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 será ignorada até a instrução após o loop rotulado. No exemplo, a execução começa novamente com a instrução "$a = $c".
Você pode aninhar muitos 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}
}
Write-Host "After innermost loop"
}
Write-Host "After yellow loop"
}
Write-Host "After red loop"
Se a variável de $b for avaliada como true, a execução do script será retomada após o loop rotulado "Red". Se a variável de $c for avaliada como true, a execução do controle de script será retomada após o loop rotulado "amarelo".
Se a variável de $a for avaliada como true, a execução será retomada após o loop mais interno. Nenhum rótulo é necessário.
O PowerShell não limita a distância com que os rótulos podem retomar a execução. O rótulo pode até passar o controle entre os limites de chamada de script e de função.
A palavra-chave break é usada para deixar a construção do comutador. Por exemplo, a instrução switch a seguir 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 com um valor de cadeia de caracteres de "word2". A instrução switch usa a classe Regex para corresponder o valor da variável primeiro com o termo "word2". (A classe Regex é uma expressão regular Microsoft .NET classe 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 PowerShell atinge a primeira instrução break, a instrução switch é encerrada. Se as quatro instruções Break forem removidas do exemplo, todas as quatro condições serão atendidas. Este exemplo usa a instrução break para exibir resultados quando a condição mais específica é atendida.