about_For

업데이트 날짜: 2014년 5월

적용 대상: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0

항목

about_For

간단한 설명

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

자세한 설명

For 루프라고도 하는 For 문은 지정된 조건이 true일 경우 명령 블록의 명령을 실행하는 루프를 만드는 데 사용할 수 있는 언어 구문입니다.

For 루프는 주로 값의 배열을 반복하고 이러한 값의 하위 집합을 처리하는 데 사용됩니다. 일반적으로 배열에 있는 모든 값을 반복하려는 경우에는 Foreach 문을 사용하는 것이 좋습니다.

구문

다음에서는 For 문의 구문을 보여 줍니다.

          for (<init>; <condition>; <repeat>) 
          {<statement list>}

<init> 자리 표시자는 루프가 시작되기 전에 실행되는 하나 이상의 명령을 쉼표로 구분하여 나타냅니다. 일반적으로 이 문의 <init> 부분은 시작 값이 있는 변수를 만들고 초기화하는 데 사용됩니다. 쉼표 구문은 다음 예제와 같이 대입문에서 작동하지 않습니다.

          $ofs=",";$rs = "rs"; $cs = "cs"; for ($r = $rs, $c = $cs; $true;) 
          { "r is '$r' and c is '$c'"; break }

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

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

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

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

예제

For 문을 사용하려면 최소한 문의 <init>, <condition> 및 <repeat> 부분을 괄호로 묶고 문의 <statement list> 부분에 있는 명령을 중괄호로 묶어야 합니다.

다음 예제에서는 For 문의 외부에 있는 코드를 의도적으로 보여 주고, 뒷부분의 예제에서는 이러한 코드를 for 문에 통합합니다.

예를 들어 다음 For 문은 사용자가 Ctrl+C를 눌러 명령을 직접 중단할 때까지 $i 변수의 값을 계속 표시합니다.

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

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

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

사용자가 Ctrl+C를 눌러 명령을 직접 중단할 때까지 이 문은 루프가 실행될 때마다 $i 변수의 값이 1씩 증가할 때 이 값을 계속 표시합니다.

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

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

이 문은 Ctrl+C를 눌러 명령을 중단할 때까지 무한히 계속 반복됩니다.

For 문의 <condition> 부분을 사용하여 조건을 설정하면 이 조건이 false가 될 때 For 루프를 종료할 수 있습니다. 다음 예제에서는 $i 값이 10보다 작거나 같을 때 For 루프가 실행됩니다.

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

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

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

세미콜론 대신 캐리지 리턴을 사용하여 For 문의 <init>, <condition> 및 <repeat> 부분을 구분할 수 있습니다. 다음 예제에서는 이 대체 형식을 사용하는 For 문의 구문을 보여 줍니다.

        
            for (<init>
          <condition>
          <repeat>){
          <statement list>
          }

For 문의 이 대체 형식은 Windows PowerShell 스크립트 파일과 Windows PowerShell 명령 프롬프트에서 사용할 수 있습니다. 그러나 명령 프롬프트에서 대화형 명령을 입력할 때는 세미콜론을 사용하면 For 문의 구문을 더 쉽게 사용할 수 있습니다.

For 루프는 패턴을 사용하여 배열 또는 컬렉션의 값을 증가시킬 수 있기 때문에 Foreach 루프보다 더 유연합니다. 다음 예제에서는 for 문의 <repeat> 부분에서 $i 변수가 2씩 증가합니다.

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

참고 항목

about_comparison_operators

about_Foreach