본문 바로가기

프로그래밍 언어들/C

9장 - C언어 반복문 for문(repetitive statement in C)

9장 - C언어 반복문 for문(repetitive statement in C)

- 반복문이란 특정한 루틴을 어느 조건이 만족할 때까지 반복적으로 수행하는 것입니다.


만약 특정 문구를 10번 출력하고 싶으면 어떻게 할까요?

printf(특정 문구); 를 10번 사용하면 되겠죠. 그렇다면 100번 만번 그 이상의 횟수라면?

같은 작업인데도 불구하고 하나 하나 재 입력해야 합니다.


printf(특정 문구);

.......

printf(특정 문구);


이렇게 동일한 루틴을 어떤 조건이 만족 시키기 전까지 반복 수행시켜주는 것이 반복문이라고 합니다.


1. for문

가장 흔히 사용되는 반복문의 하나입니다. 보통 반복 횟수가 명확할 때 사용 됩니다.


 
  1. int main (void)
  2. {
  3.     for( 초기화 ; 조건부 ; 증감식 )
  4.     {
  5.         // 반복 내용
  6.     }
  7.  
  8.     return 0 ;
  9. }


위의 예문이 for문의 구조를 나타내고 있습니다. 먼저 for문을 만나게 되면

초기화 부분을 실행합니다. 초기화 부분은 보통 반복문 조건부에 사용되는 변수의 값을 초기화합니다.

그리고 다음으로 조건부를 비교합니다. 조건부가 무조건 참일 경우 반복 내용을 수행하고 거짓이면, for문이 종료됩니다.

만약 조건이 참이어서 반복 내용을 수행하고, 모든 내용을 수행하면 다음은 증감식을 수행합니다.

증감식은 조건부에 사용되는 변수의 값을 증가하거나 감소시켜, 특정 반복 후에 for문에서 빠져나갈 수 있게끔

하는 역할입니다. 만약 조건이 계속 참이라면 무한 반복을 수행하게 될 것입니다.

정리하자면 다음과 같습니다.

(1) 초기화 : 조건부에 사용되는 변수의 값을 초기화

(2) 조건부 : 반복문의 수행 여부를 결정, 조건식이 참일 경우 수행

(3) 증감식 : 조건부에 사용되는 변수의 값을 증가하거나 감소시켜 무한 반복을 예방

(4) 반복내용 : 반복적으로 수행하고자 하는 루틴

반복문의 수행 순서는

(1) 초기화 -> ((2) 조건부 -> (4) 반복내용 -> (3) 증감식)ⁿ

즉, 초기화는 맨 처음 한 번만 수행되고, 그 다음 조건부부터 증감식 구간이 계속적으로 반복됩니다.

조건이 참일 경우 반복내용 수행 -> 증감식

..............

조건이 참일 경우 반복내용 수행 -> 증감식

조건이 거짓일 경우 for문 탈출


 
  1. int main (void)
  2. {
  3.     int i;
  4.  
  5.     for( i = 1 ; i <= 3 ; i = i + 1 )
  6.     {
  7.         printf("안녕하세요.\n");
  8.     }
  9.  
  10.     return 0 ;
  11. }


위의 예제를 보시면, 초기화에서 변수 i를 1로 초기화 해주었고,

조건식은 i <= 3 입니다. 즉 i 가 3보다 작거나 같으면 반복 적으로 루틴을 수행한다는 겁니다.

그리고 증감식은 i의 값을 1 증가시키는 것입니다.

위의 반복 내용을 앞서 설명한 실행 순서에 맞게 따라가 보면,

i를 1로 초기화 => i(1)가 3보다 작거나 같은지 비교 => 조건식이 참이므로 printf()(반복내용) 수행

=> 증감식에서 i의 값을 1증가 시킴, i가 2가 됨 => i(2)가 3보다 작거나 같은지 비교 =>

조건식이 참이므로 printf()(반복내용) 수행 => 증감식에서 i의 값을 1증가 시킴, i가 3이 됨

=> i(3)가 3보다 작거나 같은지 비교 => 조건식이 참이므로 printf()(반복내용) 수행

=> 증감식에서 i의 값을 1증가 시킴, i가 4가 됨 => i(4)가 3보다 작거나 같은지 비교 =>

조건식이 거짓이므로 반복문에서 탈출.


즉, 아래의 경우에서 총 3번 반복 내용을 수행하게 됩니다.

1 <= 3, 2 <=3, 3 <= 3


만약 위의 식에서 조건부가 i <= 10이었다면, 총 10번 수행했을 것입니다.

for문의 기본 구조는 이와 같습니다. 하지만 초기화, 조건부, 증감식은 모두 생략이 가능하기도 하고

코딩하는 사람이 자유롭게 수식을 넣거나 할 수 있습니다.


2. 실습 문제

(1) 1부터 50까지의 수를 출력하십시오.(for문 이용)

(2) 1부터 100사이의 수 중에서 7의 배수인 수를 출력하십시오.

(3) 1부터 100사이의 수 중에서 3의 배수이면서 짝수인 수를 출력하십시오.

(4) 10개의 피보나치 수열 (1 + 1 + 2 + 3 + 5 .. 55)을 출력하십시오.

 

※ 정답은 아래 링크

http://leeyongjeon.tistory.com/category/프로그래밍%20언어들/C%20문제풀이