C언어(2020년)

13. for 문

리더2333 2020. 11. 2. 16:55
반응형

그동안

if 문

if else 문

switch case 문

while 문

do while 문

등에 대하여 알아보았는데,

문법 설명없이 바로 예시로 설명했던 이유는

직관적으로 이해하기 쉽기 때문이였다.

 

for 문은 알면 쉽지만, 처음에 이해하기가 조금 어려 울 수 있겠다는 생각이 들어서

먼저 문법을 설명하려고 한다.

 

for( 초기화식 ; 조건식 ; 증감식 ) 

{

    처리내용

}

위와 같이 for 문을 사용하는데 (초기화식, 조건식, 증감식 사이에 ; (세미콜론) 이 있음에 주의)

1) 초기화식

2) 조건식 (여기에서 조건이 거짓이면 블럭을 벗어난다)

3) 처리내용

4) 증감식

의 순으로 실행이 된다. (처리내용이 먼저이고, 증감식이 나중임에 주의)

 

그런 후에 다시

1) 조건식 (여기에서 조건이 거짓이면 블럭을 벗어난다)

2) 처리내용 

3) 증감식

의 순으로 실행된다.

 

그런 후에 다시 

1) 조건시 2) 처리내용 3 증감식 ..... 반복적으로 블럭을 벗어날 때 까지 실행된다.

 

예시를 보자.

#include <stdio.h>

int main()
{
	for (int i = 0; i < 10; i++)
	{
		printf("%d\n", i);
	}

	return 0;
}

실행 결과

실행 결과

상황에 따라서 초기화식, 조건식, 증감식은 각각 생략 가능하다.

// 초기화식 생략
int i=0;
for(;i<10;i++)
{
    printf("%d\n", i);
}

// 조건식 생략(무한루프에 빠지게 된다.)
for(int i=0; ;i++)
{
    printf("%d\n",i);
}

// 증감식 생략(무한루프에 빠지게 된다.)
for(int i=0; i<10; )
{
    printf("%d\n",i);
}

// 모두 생략(무한루프에 빠지게 된다.) (이경우 while(true) { } 문과 같다)
for(;;)
{
    printf("A");
}

조건식이 빠져서 무한루프에 빠지게 되므로 블럭내에서

if(i>=10) { break; } 코드를 추가할 수 있고

 

증감식의 생략으로 인한 것도 마찬가지로 블럭내에서

i++; 을 해 주면해결이 된다.

 

숙제) for 문을 이용하여 구구단을 출력하는 프로그램을 작성하시오.

반응형

'C언어(2020년)' 카테고리의 다른 글

15. 주석  (0) 2020.11.03
14. 배열  (0) 2020.11.02
12. do while 문  (0) 2020.11.02
11. while 문  (0) 2020.11.02
10. switch case 문  (0) 2020.11.02