for(C# 참조)for (C# reference)

for 루프를 사용하면 지정된 식이 false로 계산될 때까지 문 또는 문의 블록을 반복해서 실행할 수 있습니다.By using a for loop, you can run a statement or a block of statements repeatedly until a specified expression evaluates to false. 이러한 종류의 루프는 배열을 반복하는 데 유용하며 루프를 반복할 횟수를 미리 알고 있는 다른 응용 프로그램에 유용합니다.This kind of loop is useful for iterating over arrays and for other applications in which you know in advance how many times you want the loop to iterate.

Example

다음 예제에서 i 값은 콘솔에 기록되며 루프를 반복할 때마다 1씩 증가합니다.In the following example, the value of i is written to the console and incremented by 1 during each iteration of the loop:


class ForLoopTest 
{
    static void Main() 
    {
        for (int i = 1; i <= 5; i++)
        {
            Console.WriteLine(i);
        }
    }
}
/*
Output:
1
2
3
4
5
*/

이전 예제에서 for 문은 다음 작업을 수행합니다.The for statement in the previous example performs the following actions:

  1. 먼저 i 변수의 초기 값을 설정합니다.First, the initial value of variable i is established. 이 단계는 루프가 반복되는 횟수에 관계없이 한 번만 수행됩니다.This step happens only once, regardless of how many times the loop repeats. 이 초기화가 루프 프로세스 외부에서 발생한다고 생각할 수 있습니다.You can think of this initialization as happening outside the looping process.

  2. 조건(i <= 5)을 평가하기 위해 i 값을 5와 비교합니다.To evaluate the condition (i <= 5), the value of i is compared to 5.

    • i가 5보다 작거나 같으면 조건이 true로 평가되고 다음 작업이 수행됩니다.If i is less than or equal to 5, the condition evaluates to true, and the following actions occur.

      1. 루프 본문의 Console.WriteLine 문이 i 값을 표시합니다.The Console.WriteLine statement in the body of the loop displays the value of i.

      2. i의 값이 1씩 증가합니다.The value of i is incremented by 1.

      3. 루프가 2단계의 시작 부분으로 돌아가 조건을 다시 평가합니다.The loop returns to the start of step 2 to evaluate the condition again.

    • i가 5보다 크면 조건이 false로 평가되고 루프를 종료합니다.If i is greater than 5, the condition evaluates to false, and you exit the loop.

i의 초기 값이 5보다 크면 루프의 본문이 한 번도 실행되지 않습니다.Note that, if the initial value of i is greater than 5, the body of the loop doesn't run even once.

for 문의 섹션Sections of a for statement

모든 for 문은 ‘이니셜라이저’, ‘조건’ 및 ‘반복기’ 섹션을 정의합니다.Every for statement defines initializer, condition, and iterator sections. 이러한 섹션은 일반적으로 루프가 반복되는 횟수를 결정합니다.These sections usually determine how many times the loop iterates.

for (initializer; condition; iterator)  
    body  

섹션은 다음과 같은 용도로 사용됩니다.The sections serve the following purposes:

  • 이니셜라이저 섹션은 초기 조건을 설정합니다.The initializer section sets the initial conditions. 이 섹션의 문은 루프가 시작되기 전에 한 번만 실행됩니다.The statements in this section run only once, before you enter the loop. 섹션에는 다음 두 가지 옵션 중 하나만 포함될 수 있습니다.The section can contain only one of the following two options.

    • 첫 번째 예제와 같이 로컬 루프 변수의 선언 및 초기화(int i = 1).The declaration and initialization of a local loop variable, as the first example shows (int i = 1). 변수는 루프에 로컬이며 루프 외부에서 액세스할 수 없습니다.The variable is local to the loop and can't be accessed from outside the loop.

    • 쉼표로 구분된 다음 목록의 문 식 0개 이상Zero or more statement expressons from the following list, separated by commas.

      • assignmentassignment statement

      • 메서드 호출invocation of a method

      • 접두사 또는 후위 increment 식(예: ++i 또는i++)prefix or postfix increment expression, such as ++i or i++

      • 접두사 또는 후위 decrement 식(예: --i 또는i--)prefix or postfix decrement expression, such as --i or i--

      • new를 사용하여 개체 만들기creation of an object by using new

      • awaitawait expression

  • 조건 섹션에는 루프를 종료할지 다시 실행할지를 결정하기 위해 평가되는 부일 식이 포함되어 있습니다.The condition section contains a boolean expression that’s evaluated to determine whether the loop should exit or should run again.

  • 반복기 섹션은 루프의 본문을 반복할 때마다 수행되는 업을 정의합니다.The iterator section defines what happens after each iteration of the body of the loop. 반복기 섹션에는 다음과 같은 문 식이 쉼표로 구분되어 0개 이상 포함됩니다.The iterator section contains zero or more of the following statement expressions, separated by commas:

    • assignmentassignment statement

    • 메서드 호출invocation of a method

    • 접두사 또는 후위 increment 식(예: ++i 또는i++)prefix or postfix increment expression, such as ++i or i++

    • 접두사 또는 후위 decrement 식(예: --i 또는i--)prefix or postfix decrement expression, such as --i or i--

    • new를 사용하여 개체 만들기creation of an object by using new

    • awaitawait expression

  • 루프의 본문은 문, 빈 문 또는 0개 이상의 문을 중괄호로 묶어 만드는 문 블록으로 구성됩니다.The body of the loop consists of a statement, an empty statement, or a block of statements, which you create by enclosing zero or more statements in braces.

    break 키워드를 사용하여 for 루프를 중단하거나, continue 키워드를 사용하여 다음 반복을 단계 실행할 수 있습니다.You can break out of a for loop by using the break keyword, or you can step to the next iteration by using the continue keyword. 또한 goto, return 또는 throw 문을 사용하여 루프를 종료할 수 있습니다.You also can exit any loop by using a goto, return, or throw statement.

이 항목의 첫 번째 예제에서는 섹션에 대해 다음 중에서 선택할 수 있는 가장 일반적인 종류의 for 루프를 보여줍니다.The first example in this topic shows the most typical kind of for loop, which makes the following choices for the sections:

  • 이니셜라이저는 루프의 반복 횟수를 유지 관리하는 로컬 루프 변수 i를 선언하고 초기화합니다.The initializer declares and initializes a local loop variable, i, that maintains a count of the iterations of the loop.

  • 조건은 알려진 최종 값 5에 대해 루프 변수의 값을 확인합니다.The condition checks the value of the loop variable against a known final value, 5.

  • 반복기 섹션에서는 후위 increment 문 i++를 사용하여 루프의 각 반복을 기록합니다.The iterator section uses a postfix increment statement, i++, to tally each iteration of the loop.

추가 예제More examples

다음 예제에서는 이니셜라이저 섹션에서 외부 루프 변수에 값 할당, 이니셜라이저와 반복기 섹션에서 Console.WriteLine 메서드 호출, 반복기 섹션에서 두 변수의 값 변경과 같이 여러 가지 덜 일반적인 선택 항목을 보여줍니다.The following example illustrates several less common choices: assigning a value to an external loop variable in the initializer section, invoking the Console.WriteLine method in both the initializer and the iterator sections, and changing the values of two variables in the iterator section.

static void Main()
 {
     int i;
     int j = 10;
     for (i = 0, Console.WriteLine("Start: {0}",i); i < j; i++, j--, Console.WriteLine("i={0}, j={1}", i, j))
     {
         // Body of the loop.
     }
 }
 // Output:
 // Start: 0
 // i=1, j=9
 // i=2, j=8
 // i=3, j=7
 // i=4, j=6
 // i=5, j=5

for 문을 정의하는 모든 식은 선택 사항입니다.All of the expressions that define a for statement are optional. 예를 들어 다음 문은 무한 루프를 만듭니다.For example, the following statement creates an infinite loop:

for (; ; )
{
    // ...
}

C# 언어 사양C# language specification

자세한 내용은 C# 언어 사양을 참조하세요.For more information, see the C# Language Specification. C# 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.The language specification is the definitive source for C# syntax and usage.

참고 항목See also

for 문(C# 언어 사양)The for statement (C# language specification)
C# 참조C# Reference
C# 프로그래밍 가이드C# Programming Guide
C# 키워드C# Keywords
foreach, inforeach, in
for 문(C++)for Statement (C++)
반복 문Iteration Statements