about_Continue
간단한 설명
명령문이 continue
프로그램 루프, 문 또는 문의 맨 위로 프로그램 흐름을 즉시 반환하는 switch
trap
방법을 설명합니다.
자세한 설명
이 문은 continue
현재 제어 블록을 종료하지만 완전히 종료하지 않고 실행을 계속하는 방법을 제공합니다. 이 문은 레이블을 지원합니다.
레이블은 스크립트의 문에 할당하는 이름입니다.
루프에서 계속 사용
레이블 continue
이 지정되지 않은 문은 프로그램 흐름을 , 또는 do
while
문으로 제어for
foreach
되는 가장 안쪽 루프의 맨 위로 즉시 반환합니다. 루프의 현재 반복이 종료되고 루프는 다음 반복으로 계속됩니다.
다음 예제에서는 변수가 5와 같으면 $ctr
프로그램 흐름이 루프의 while
맨 위로 돌아갑니다. 따라서 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
문 레이블로 컨트롤을 전송합니다.
다음 예제에서는 True이면 가장 for
안쪽이 종료되고 $condition
두 번째 for
루프가 로 labelB
반복됩니다.
: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
트랩 문에서 continue 사용
본문 trap
에서 실행된 최종 문이 문인 continue
경우 트랩된 오류는 자동으로 무시되고 실행은 발생하게 된 trap
문 바로 다음에 문으로 계속됩니다.
루프, 스위치 또는 트랩 외부에서 계속 사용 안 함
직접 지원하는 구문 외부에서 사용되는 경우 continue
(루프, switch
, trap
) PowerShell 은 바깥쪽 구문에 대한 호출 스택 을 조회합니다. 바깥쪽 구문을 찾을 수 없는 경우 현재 Runspace는 조용히 종료됩니다.
즉, 해당 함수 및 스크립트를 지원하는 바깥쪽 구문의 외부를 실수로 사용하는 continue
함수와 스크립트는 실수로 호출자를 종료할 수 있습니다.
스크립트 블록과 같은 파이프라인 내부에서 사용하면 continue
파이프라인을 ForEach-Object
종료할 뿐만 아니라 전체 Runspace가 종료될 수 있습니다.
참고 항목
PowerShell