15. 반복문 (for)

C언어/문법 2019. 11. 3. 15:58
반응형

for문

for문은 대표적인 반복문으로 주로 처리 횟수의 제한이나, 특정 데이터 범위에 대한 처리, 배열 처리 등에 일반적으로 많이 사용합니다.

 

for문의 구조

for (시작값 설정 부분; 비교부분; 증감부분)
{
    // 처리부분
}

하나의 문장으로 된 경우에는 중괄호(block) { ~ }는 생략이 가능합니다.

 

시작값 설정 부분
    대체로 for문의 반복적으로 처리할 데이터의 시작값을 설정하는 부분입니다.

    idx = 0 처럼 값의 시작값을 지정합니다. 나열 연산자( , )를 통하여 여러 개의 변수에 대해서 시작값을 설정할 수 있습니다. 

 

비교 부분

   처리부분을 수행할 것인지 여부를 판단하는 부분입니다. 이 부분은 주로 비교 연산이 위치합니다.

 

증감 부분
   일반적으로 특정 값만큼 값을 중가시키거나, 감소 시키는 문장이 위치하는 곳입니다. 
   대체로 idx++ 또는 idx-- 또는 idx += 2 처럼 특정 데이터 단위로 증감이 일어나는 곳입니다.

 

 

ex). 100개의 배열 데이터에 대한 합 계산

int  idx; 
long value[100];
long sum = 0;

for (idx = 0; idx < 100; idx++)
{
    sum += value[idx];
}

for문의 실행 순서는 첫 for문 실행할 때의 실행하는 순서는
  1). idx = 0;  시작값 설정부분 실행

  2). idx < 100 참인지 여부 판단
  3). sum += value[idx];
의 순서로 실행이 되고, 2번째 부터는
  1). idx++ 증감 부분 실행
  2). idx < 100 이 참인지 여부를 판단
  3). sum += value[idx];
순서로 실행을 합니다.


for문의 마지막 부분에 있는 idx++을 ++idx로 했을 때, 결과는 다르다고 생각하는 개발자들이 있는 데, 똑같습니다. (idx++은 for문이 1회 끝나고 수행되고 ++idx는 for문이 처음 시작할 때부터 한 번 계산하고 시작한다는 생각을 갖는 분이 가끔 있음)

 

무한 반복문

for ( ;  ;  )
{
    // 처리 부분
}

위와 같이 표현으로 무한 반복 처리할 수 있습니다. 정확하게는 가운데 부분이 비어 있기만 해도 무한 반복 처리됩니다. 이런 문장의 종료는 내부에서 if ~ else 문 내에 break를 사용하여 중지할 수 있습니다.

 

 

예제2). 여러 변수 초기값 설정

int  idx;
long sum;
long arr[100];

...

for (idx = 0, sum = 0 ; idx < 100 ; idx++ )
{
    sum += arr[idx];
}

위의 예 처럼 for문과 관련된 초기값 설정으로 나열 연산자( , )를 통하여 여러개 할 수도 있으며, 증감부분(idx++)에도 나열 연사자로 구분하여 여러개의 변수를 동시에 증감처리할 수 있습니다.

 

break 문과 continue문

break문은 for문의 실행을 중단하고 block을 빠져나가라는 용도로 사용합니다.

continue문은 continue 문 아래 부분은 skip하고, 증감 부분으로 이동하여 계속 진행하라는 의미입니다.

 

예제). 홀수면 무시하고, 짝수면 더하고, 0 이하면 종료

int  idx;
long sum;
long arr[100];

......

for(idx = 0, sum = 0; idx < 100; idx++)
{
    if(arr[idx] % 2 == 1) {
        continue;
    } else if(arr[idx] <= 0) {
        break;
    }
    sum += arr[idx];
}

위의 예제는 100 개의 데이터가 저장된 arr 변수에서 데이터가 짝수값이면 합산하고, 홀수이면 버리고, 0이하이면 종료하라는 예제입니다.

continue 부분의 역할은 홀수이면, 즉 2로 나눈 나머지가 1 (arr[idx] % 2 == 1)이면, continue 아래에 있는 로직은 처리하지 말고 증감부분(idx++)부터 다시 시작하라는 의미입니다.

break문은 for문의 실행을 끝내라는 의미입니다.

 

 

 

 

C Programming Language 문법

1. C 프로그래밍 언어는? 2. C언어 개발 환경 (실습 환경) 3. C언어의 컴파일 과정 4. C 소스 파일 구성 5. 주석문(Comment) 6. 식별자 명명 규칙 7. C 프로그래밍의 시작 - 함수 8. 변수와 상수 (정수형) 9. 변..

www.it-note.kr

 

 

 

반응형

'C언어 > 문법' 카테고리의 다른 글

17. 반복문 (do ~ while)  (0) 2019.11.04
16. 반복문 (while)  (2) 2019.11.04
14. 조건문 (switch ~ case)  (2) 2019.11.02
13. 조건문 (if ~ else if ~ else)  (0) 2019.10.31
12. C언어의 연산자(operator)  (2) 2019.10.31
블로그 이미지

자연&사람

행복한 개발자 programmer since 1995.

,