간략한 설명
명령문이 continue 프로그램 루프, 문 또는 문의 맨 위로 프로그램 흐름을 즉시 반환하는 switchtrap 방법을 설명합니다.
자세한 설명
이 문은 continue 현재 제어 블록을 종료하지만 완전히 종료하지 않고 실행을 계속하는 방법을 제공합니다. 이 문은 레이블을 지원합니다.
레이블은 스크립트의 문에 할당하는 이름입니다.
CONTINUE IN 루프 사용
레이블 continue 이 지정되지 않은 문은 프로그램 흐름을 , 또는 forforeach 문으로 제어dowhile되는 가장 안쪽 루프의 맨 위로 즉시 반환합니다. 루프의 현재 반복이 종료되고 루프는 다음 반복으로 계속됩니다.
다음 예제에서는 변수가 5와 같으면 while 프로그램 흐름이 루프의 $ctr 맨 위로 돌아갑니다. 따라서 5를 제외하고 1에서 10 사이의 모든 숫자가 표시됩니다.
while ($ctr -lt 10)
{
$ctr += 1
if ($ctr -eq 5)
{
continue
}
Write-Host -Object $ctr
}
루프를 for 사용하는 경우 문에서 <Repeat> 실행을 계속한 다음 테스트를 수행합니다 <Condition> . 아래 예제에서는 키워드 뒤의 $i 감소가 발생하므로 무한 루프가 continue 발생하지 않습니다.
# <Init> <Condition> <Repeat>
for ($i = 0; $i -lt 10; $i++)
{
Write-Host -Object $i
if ($i -eq 5)
{
continue
# Will not result in an infinite loop.
$i--
}
}
루프에서 레이블이 지정된 계속 사용
레이블이 지정된 문은 continue 반복 실행을 종료하고 대상 바깥쪽 반복 또는 switch 문 레이블로 컨트롤을 전송합니다.
다음 예제에서는 Truefor종료되고 $condition 두 번째 루프가 로 for반복됩니다.
:labelA for ($i = 1; $i -le 10; $i++) {
:labelB for ($j = 1; $j -le 10; $j++) {
:labelC for ($k = 1; $k -le 10; $k++) {
if ($condition) {
continue labelB
} else {
$condition = Update-Condition
}
}
}
}
SWITCH 문에서 CONTINUE 사용
레이블이 continue 지정되지 않은 문 switch 은 현재 switch 반복 실행을 종료하고 다음 입력 항목을 가져오기 위해 컨트롤을 switch 맨 위로 전송합니다.
단일 입력 항목 continue 이 있는 경우 전체 switch 문을 종료합니다. 입력이 switch 컬렉션이면 컬렉션 switch 의 각 요소를 테스트합니다. 현재 continue 반복을 종료하고 switch 다음 요소를 계속합니다.
switch (1,2,3) {
2 { continue } # moves on to the next element, 3
default { $_ }
}
1
3
TRAP 문에서 CONTINUE 사용
본문 trap 에서 실행된 최종 문이 문인 continue경우 트랩된 오류는 자동으로 무시되고 실행은 발생하게 된 trap 문 바로 다음에 문으로 계속됩니다.
루프, 스위치 또는 트랩 외부에서 계속을 사용하지 마세요.
직접 지원하는 구문 외부에서 사용되는 경우 continue (루프, switch, trap) PowerShell 은 바깥쪽 구문에 대한 호출 스택 을 조회합니다. 바깥쪽 구문을 찾을 수 없는 경우 현재 Runspace는 조용히 종료됩니다.
즉, 해당 함수 및 스크립트를 지원하는 바깥쪽 구문의 외부를 실수로 사용하는 continue 함수와 스크립트는 실수로 호출자를 종료할 수 있습니다.
스크립트 블록과 같은 파이프라인 내부에서 사용하면 continue 파이프라인을 ForEach-Object 종료할 뿐만 아니라 전체 Runspace가 종료될 수 있습니다.
또한보십시오
PowerShell