for 문 (C)for Statement (C)

for 문을 사용하면 지정한 횟수만큼 문 또는 복합 문을 반복할 수 있습니다.The for statement lets you repeat a statement or compound statement a specified number of times. for 문의 본문은 선택적 조건이 false가 될 때까지 0번 이상 실행됩니다.The body of a for statement is executed zero or more times until an optional condition becomes false. for 문 내에 선택적 식을 사용하여 for 문의 실행 중 값을 초기화하고 변경할 수 있습니다.You can use optional expressions within the for statement to initialize and change values during the for statement's execution.

구문Syntax

iteration-statement:iteration-statement:
  for ( init-expressionopt ; cond-expressionopt ; loop-expressionopt ) statement  for ( init-expressionopt ; cond-expressionopt ; loop-expressionopt ) statement

for 문의 실행 절차는 다음과 같습니다.Execution of a for statement proceeds as follows:

  1. init-expression이 계산됩니다(있는 경우).The init-expression, if any, is evaluated. 이로 인해 루프에 대한 초기화가 지정됩니다.This specifies the initialization for the loop. init-expression의 형식에 대한 제한은 없습니다.There is no restriction on the type of init-expression.

  2. cond-expression이 계산됩니다(있는 경우).The cond-expression, if any, is evaluated. 이 식에는 산술 또는 포인터 형식이 있어야 합니다.This expression must have arithmetic or pointer type. 이 식은 각 반복 전에 계산됩니다.It is evaluated before each iteration. 세 가지 결과가 나타날 수 있습니다.Three results are possible:

    • cond-expressiontrue(0이 아님)이고 statement가 실행되면 loop-expression이 계산됩니다(있는 경우).If cond-expression is true (nonzero), statement is executed; then loop-expression, if any, is evaluated. loop-expression은 각 반복 후 계산됩니다.The loop-expression is evaluated after each iteration. 해당 형식에 대한 제한은 없습니다.There is no restriction on its type. 의도하지 않은 결과가 순서대로 실행됩니다.Side effects will execute in order. 그런 다음 cond-expression이 계산되며 프로세스가 다시 시작됩니다.The process then begins again with the evaluation of cond-expression.

    • cond-expression을 생략할 경우 cond-expression이 true로 간주되고 이전 단락의 설명에 따라 실행이 진행됩니다.If cond-expression is omitted, cond-expression is considered true, and execution proceeds exactly as described in the previous paragraph. cond-expression 인수가 없는 for 문은 문 본문 내의 break 또는 return 문이 실행되거나 for 문 본문 외부에 있는 레이블 문으로의 goto가 실행될 때만 종료됩니다.A for statement without a cond-expression argument terminates only when a break or return statement within the statement body is executed, or when a goto (to a labeled statement outside the for statement body) is executed.

    • cond-expressionfalse(0)인 경우 for 문이 종료되고 프로그램의 다음 문으로 제어가 전달됩니다.If cond-expression is false (0), execution of the for statement terminates and control passes to the next statement in the program.

    for 문도 문 본문 내에서 break, goto 또는 return 문이 실행될 때 종료됩니다.A for statement also terminates when a break, goto, or return statement within the statement body is executed. for 루프의 continue 문으로 인해 loop-expression이 계산됩니다.A continue statement in a for loop causes loop-expression to be evaluated. for 루프 내에서 break 문이 실행되면 loop-expression이 계산 또는 실행되지 않습니다.When a break statement is executed inside a for loop, loop-expression is not evaluated or executed. 다음 문은This statement

for( ;; )  

break, goto 또는 return 문을 사용해야만 종료할 수 있는 무한 루프를 생성하는 일반적인 방법입니다.is the customary way to produce an infinite loop which can only be exited with a break, goto, or return statement.

코드Code

이 예제에서는 for 문에 대해 설명합니다.This example illustrates the for statement:

// c_for.c  
int main()  
{  
   char* line = "H e  \tl\tlo World\0";  
   int space = 0;  
   int tab = 0;  
   int i;  
   int max = strlen(line);  
   for (i = 0; i < max; i++ )   
   {  
      if ( line[i] == ' ' )  
      {  
          space++;  
      }  
      if ( line[i] == '\t' )  
      {  
          tab++;  
      }  
   }  

   printf("Number of spaces: %i\n", space);  
   printf("Number of tabs: %i\n", tab);  
   return 0;  
}  

출력Output

Number of spaces: 4  
Number of tabs: 2  

참고 항목See Also

Statements