Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
BREVE DESCRIÇÃO
Descreve uma declaração que pode usar para sair imediatamente de Foreach, For, While, Do ou Switch.
LONGA DESCRIÇÃO
Quando uma declaração de Break aparece num loop, como um foreach, for ou while loop, a declaração break faz com que o PowerShell saia imediatamente do circuito. Numa construção switch, Break faz com que o PowerShell saia do bloco de códigos Switch.
Uma declaração de break pode incluir uma etiqueta que permite sair em loops incorporados. Uma etiqueta pode especificar qualquer palavra-chave em loop, como Foreach, For, For ou While, num script.
O exemplo a seguir mostra como usar uma declaração de break para sair de uma declaração para:
for($i=1; $i -le 10; $i++) {
Write-Host $i
break
}
Neste exemplo, a declaração break sai do circuito For quando a variável $i é igual a 1. Mesmo que a declaração para o For avalie para True até $i seja superior a 10, a PowerShell atinge a declaração de rutura na primeira vez que o loop For é executado.
É mais comum usar a declaração break em um loop onde uma condição interior deve ser satisfeita. Considere o seguinte exemplo de declaração de 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 declaração de Foreach itera a matriz $varB. Cada vez que o bloco de código é executado, a variável $i é incrementada por 1. A declaração se avaliar a False as duas primeiras vezes o loop é executado. A terceira vez que o loop é executado, $i é igual a 3, e a variável $val é igual a 30. Neste ponto, a declaração de Break corre, e o circuito de Foreach sai.
Sais das outras declarações em loop da mesma forma que sais do circuito de Foreach. No exemplo seguinte, a declaração Break sai de uma declaração enquanto uma exceção DivideByZeroException é presa usando a declaração de Trap.
$i = 3
while ($true) {
trap [DivideByZeroException] {
Write-Host 'divide by zero trapped'
break
}
1 / $i--
}
Uma declaração de break pode incluir uma etiqueta. Se utilizar a palavra-chave Break com uma etiqueta, a PowerShell sai do laço etiquetado em vez de sair do laço atual. A sintaxe para um rótulo é a seguinte (este exemplo mostra uma etiqueta num loop While):
:myLabel while ( <condition> { <statement list> } }
A etiqueta é um cólon seguido de um nome que você atribui. A etiqueta deve ser o primeiro sinal em comunicado, e deve ser seguida pela palavra-chave em loop, como While.
No PowerShell, apenas palavras-chave em loop, tais como Foreach, For e While podem ter uma etiqueta.
Quebrar move a execução para fora do laço rotulado. Em loops incorporados, este tem um resultado diferente do que a palavra-chave Break tem quando é usada por si mesma. Este exemplo esquemático tem uma declaração de While com uma declaração para:
: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 avaliar a True, a execução do script salta para a declaração após o loop rotulado. No exemplo, a execução recomeça com a frase "$a = $c".
Pode nidificar muitos laços rotulados, como mostra o seguinte exemplo esquemático.
: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 $b avaliar true, a execução do script retoma após o loop que é rotulado de "vermelho". Se a variável $c avaliar a True, a execução do controlo do script retoma após o laço que é rotulado como "amarelo".
Se a variável $a avaliar a True, a execução retoma após o ciclo mais íntimo. Não é necessária etiqueta.
O PowerShell não limita até que ponto as etiquetas podem retomar a execução. A etiqueta pode até passar o controlo através dos limites de script e função.
A palavra-chave Break é utilizada para deixar a construção switch. Por exemplo, a seguinte declaração da Switch utiliza declarações de 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 para um valor de cadeia de "palavra2". A declaração da Switch utiliza a classe Regex para combinar primeiro o valor variável com o termo "palavra2". (A classe Regex é uma expressão regular microsoft .NET Framework class.) Uma vez que o valor variável e o primeiro teste na correspondência de declaração da Switch, o primeiro bloco de código na declaração switch é executado.
Quando a PowerShell atinge a primeira declaração de Break, a declaração da Switch sai. Se as quatro declarações de Break forem removidas do exemplo, todas as quatro condições estão reunidas. Este exemplo utiliza a declaração de rutura para mostrar resultados quando a condição mais específica é satisfeita.