C언어 반복문과 조건문 for

    2018-02-06 13:55:32 작성

    for

    for (초기식; 조건식; 증감식) {
        반복 실행될 문장
    }

    for 문은 반복문중 가장 많이 사용되는 반복문 입니다.

    #include <stdio.h>
    
    int main(void) {
        int i;
        for (i = 0; i < 5; i++) {
            printf("for문에 의한 반복 : %d \n", i);
        }
        return 0;
    }


    while 문과 비교해 볼수 있습니다.
    위의 코드를 while문으로 바꿔보면 다음과 같습니다.

    #include <stdio.h>
    
    int main(void) {
        int i = 0; // 초기식
        while (i < 5) { // 조건식
            printf("while문에 의한 반복 : %d \n", i);
            i++; // 증감식
        }
        return 0;
    }

    for문도 반복 실행될 문장이 한줄이면 중괄호가 생략이 가능합니다.

    #include <stdio.h>
    
    int main(void) {
        int i;
        for (i = 0; i < 5; i++)
            printf("for문에 의한 반복 : %d \n", i);
        return 0;
    }


    for 문의 흐름


    ① 초기식은 처음 실행될때 한번만 실행되고
    ② 조건식을 검사하여 참이면 ③을 실행 후 ④ 증감식을 실행
    다시 ② 조건식을 검사하여 참이면 ③을 실행 후 ④ 증감식을 실행 반복하고
    ② 조건식을 검사하여 거짓이 될때 까지 반복하며 조건식이 거짓일때 반복문을 빠져 나오게 됩니다.


    초기식, 조건식, 증감식 생략 가능

    // 초기식을 생략하는 경우
    i=0; // for문 외부에 초기식이 있을 경우
    for( ; i<10; i++)
    
    // 조건식을 생략하는 경우
    for (i=0; ; i++) { // 조건식이 없으면 무한 루프
        //반복조건
        break; // break 문을 통해 반복문을 빠져나감
    }
    
    // 증감식을 생략하는 경우
    for (i=0; i<10; ) {
        i++ //반복문 안에서 증감식 수행 가능
    }


    for문의 중첩

    다음은 for문을 중첩하여 구구단을 출력하는 예입니다.

    #include <stdio.h>
    
    int main(void) {
        int i, j;
        for (i = 2; i < 10; i++) { // 2 ~ 9 단까지
            for (j = 1; j < 10; j++) { // 각 단의 1 ~ 9 까지
                printf("%d x %d = %d\n", i, j, i*j);
            }
            printf("\n"); // 각 단이 끝날때 개행
        }
        return 0;
    }


    연습문제

    사용자로 부터 두개의 정수를 입력받아 입력받은 두 정수를 포함하여 두 정수 사이에 존재하는 정수의 합을 구하는 프로그램을 작성.
    간단히 하기 위해 두번째 수는 첫번째 수보다 큰 값을 입력하는 조건으로 하세요.