about_For

간단한 설명

조건부 테스트를 기반으로 문을 실행하는 데 사용할 수 있는 언어 명령에 대해 설명합니다.

자세한 설명

For 명령문(루프라고도 함For)은 지정된 조건이 계산되는 동안 명령 블록에서 명령을 실행하는 루프를 만드는 데 사용할 수 있는 언어 구문입니다$true.

루프의 For 일반적인 사용은 값 배열을 반복하고 이러한 값의 하위 집합에서 작동하는 것입니다. 대부분의 경우 배열의 모든 값을 반복하려면 문을 사용하는 것이 Foreach 좋습니다.

구문

다음은 문 구문을 보여줍니다 For .

for (<Init>; <Condition>; <Repeat>)
{
    <Statement list>
}

Init 자리 표시자는 루프가 시작되기 전에 실행되는 하나 이상의 명령을 나타냅니다. 일반적으로 문의 Init 부분을 사용하여 시작 값으로 변수를 만들고 초기화합니다.

이 변수는 문의 다음 부분에서 테스트할 조건의 기초가 For 됩니다.

조건 자리 표시자는 또는 $false부울 값으로 $true 확인되는 문의 부분을 For 나타냅니다. PowerShell은 루프가 실행될 때마다 For 조건을 평가합니다. 문이면 $true명령 블록의 명령이 실행되고 문이 다시 평가됩니다. 조건이 여전히 $true있으면 문 목록의 명령이 다시 실행됩니다. 루프는 조건이 될 때까지 반복됩니다.$false

반복 자리 표시자는 루프가 반복될 때마다 실행되는 하나 이상의 명령을 쉼표로 구분하여 나타냅니다. 일반적으로 문의 조건 부분 내에서 테스트되는 변수를 수정하는 데 사용됩니다.

문 목록 자리 표시자는 루프를 입력하거나 반복할 때마다 실행되는 하나 이상의 명령 집합을 나타냅니다. 문 목록내용은 중괄호로 묶입니다.

여러 작업에 대한 지원

다음 구문은 Init 문의 여러 할당 작업에 대해 지원됩니다.

# Comma separated assignment expressions enclosed in parentheses.
for (($i = 0), ($j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $i++)
{
    "`$i:$i"
    "`$j:$j"
}

다음 구문은 Repeat 문의 여러 할당 작업에 대해 지원됩니다.

# Comma separated assignment expressions.
for (($i = 0), ($j = 0); $i -lt 10; $i++, $j++)
{
    "`$i:$i"
    "`$j:$j"
}

# Comma separated assignment expressions enclosed in parentheses.
for (($i = 0), ($j = 0); $i -lt 10; ($i++), ($j++))
{
    "`$i:$i"
    "`$j:$j"
}

# Sub-expression using the semicolon to separate statements.
for ($($i = 0;$j = 0); $i -lt 10; $($i++;$j++))
{
    "`$i:$i"
    "`$j:$j"
}

참고 항목

사전 또는 사후 증분 이외의 작업은 모든 구문에서 작동하지 않을 수 있습니다.

여러 조건의 경우 다음 예제와 같이 논리 연산자를 사용합니다.

for (($i = 0), ($j = 0); $i -lt 10 -and $j -lt 10; $i++,$j++)
{
    "`$i:$i"
    "`$j:$j"
}

자세한 내용은 about_Logical_Operators 참조하세요.

예제

최소한 문에는 For 문의 Init, Condition 및 Repeat 부분을 둘러싼 괄호와 문의 문 목록 부분에 중괄호로 둘러싸인 명령이 필요합니다.

예정된 예제는 의도적으로 문 외부의 코드를 표시합니다 For . 이후 예제에서는 코드가 문에 For 통합됩니다.

예를 들어 다음 문은 For Ctrl+C를 눌러 명령을 수동으로 분리할 때까지 변수 값을 $i 지속적으로 표시합니다.

$i = 1
for (;;)
{
    Write-Host $i
}

다음 예제와 같이 루프가 실행될 때마다 값 $i 이 1씩 증가하도록 명령 목록에 명령을 추가할 수 있습니다.

for (;;)
{
    $i++; Write-Host $i
}

Ctrl+C를 눌러 명령이 중단될 때까지 이 문은 루프가 실행될 때마다 1씩 증가하므로 변수 값을 $i 지속적으로 표시합니다.

문의 문 목록 부분에 For 있는 변수 값을 변경하는 대신 다음과 같이 문의 반복 부분을 For 사용할 수 있습니다.

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

이 문은 Ctrl+C를 눌러 명령에서 벗어날 때까지 무기한으로 반복됩니다.

조건을 사용하여 루프를 For 종료할 수 있습니다. 문의 조건 부분을 사용하여 조건을 배치할 For 수 있습니다. For 조건이 .로 계산되면 루프가 종료됩니다.$false

다음 예제에서는 값 $iFor 10보다 작거나 같은 동안 루프가 실행됩니다.

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

문 외부에서 For 변수를 만들고 초기화하는 대신 문의 Init 부분을 For 사용하여 루프 내에서 For 이 작업을 수행할 수 있습니다.

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

세미콜론 대신 캐리지 리턴을 사용하여 문의 Init, ConditionRepeat 부분을 구분할 수 있습니다For. 다음 예제에서는 이 대체 구문을 사용하는 방법을 보여줍니다 For .

for ($i = 0
  $i -lt 10
  $i++){
  $i
}

이 대체 형식의 문은 For PowerShell 스크립트 파일 및 PowerShell 명령 프롬프트에서 작동합니다. 그러나 명령 프롬프트에서 For 대화형 명령을 입력할 때 세미콜론과 함께 문 구문을 사용하는 것이 더 쉽습니다.

For 루프는 패턴을 사용하여 배열 또는 컬렉션의 Foreach 값을 증분할 수 있으므로 루프보다 더 유연합니다. 다음 예제에서는 명령문의 $i 반복 부분에서 변수가 2씩 증가합니다For.

for ($i = 0; $i -le 20; $i += 2)
{
    Write-Host $i
}

루프는 For 다음 예제와 같이 한 줄로 작성할 수도 있습니다.

for ($i = 0; $i -lt 10; $i++) { Write-Host $i }

참고 항목