본문 바로가기

Progremming Study/C언어

c언어 기초 _ 반복문 ( for( )문 )

728x90

* 반복문

 

=> 조건식을 비교하면서 참일 경우 종속 문장을 실행시키고 변화식을 거쳐 조건식을 또다시 비교하는 문법

 

  • for ()
  • while ()
  • do ~ while ()

 

* for ( )문

 

< 기본 원형 >

 

    for ( 초기식; 조건식; 변화식 )

    {

        종속 문장;

    }

 

 

=> 초기식 > 조건식 > 종속 문장 > 변화식 > 조건식 > 종속 문장 > 변화식 > .... 순으로 진행

=> 종속 문장이 한 줄일때는 { }를 생략 가능

 

 

 

---------------------------------------------------------------------------

 

 

 

ex) 

// 기본 원형 예시 (예전 문법 버전)

int = i;                                                                           // i를 먼저 정의한 후 for문에서 초기식을 작성

for (i = 0; i < 10; i++)

{

    printf("Hello world\n");

}

 

 

// 기본 원형 예시 (현재 문법 버전)

for (int i = 0; i < 10; i++)                                             // for문 안에서 i의 정의와 동시에 초기식을 작성

{

    printf("Hello world\n");

}

 

 

// 소문자 알파벳 하나를 입력 받고, a부터 입력받은 알파벳까지 출력

char m;                                                                     // ASCII 코드를 사용하지 않아도 알아서 인식함
  
printf("입력: ");
scanf("%c", &m);

printf("출력: ")                                                          // 출력을 한 번만 나타내기 위해 반복 문안에 작성하지 않음
for (char i = 'a'; i <= m; i++)
{
printf(" %c", i);
}

 

 


 

< for()문 무한 루프 >

 

for ( ; ; )

    종속 문장;

 

=> 초기식, 조건식, 변화식을 생략

 

 

 

---------------------------------------------------------------------------

 

 

 

ex)

// for()문 무한 루프 예시

for( ; ; )

{

    printf("Hello world\n");

}

 

 

// 숫자 한 개를 입력받고 출력을 반복하다가 9가 입력됐을 때 종료되는 프로그램

int num;

 

for ( ; ; )

{

    printf("입력 : ");

    scanf("%d", &num);

 

    if ( num == 9 )

        break;

 

    printf("출력: %d\n", num);

}

 


 

< 기타 키워드 >

 

break : 해당 키워드를 만나게 되면 반복문을 탈출

continue : 해당 키워드를 만나게 되면 continue보다 아래 있는 종속 문장을 실행하지 않고 진행

 

 

 

---------------------------------------------------------------------------

 

 

 

ex)

// break 예시

for ( int i = 0; i < 10; i++ )

{

    if ( i == 5 )

        break;

    printf("Hello world  i: %d\n", i);

}

 

=>

Hello world   i: 0
Hello world   i: 1
Hello world   i: 2
Hello world   i: 3
Hello world   i: 4

 

 

// continue 예시

for (int i = 0; i < 10; i++)

{

    if ( i == 5 )

        continue;

    printf("Hello world  i: %d\n", i);

}

 

=>

Hello world   i: 0
Hello world   i: 1
Hello world   i: 2
Hello world   i: 3
Hello world   i: 4
Hello world   i: 6
Hello world   i: 7
Hello world   i: 8
Hello world   i: 9

 

 


 

< 이중 for ( ) 문 >

 

for ( 초기식; 조건식; 변화식 )

{

    for ( 초기식; 조건식; 변화식)

    {

        종속 문장;

    }

}

 

 

 

---------------------------------------------------------------------------

 

 

 

ex)

// 이중 for ( )문 예시

for (int i = 0; i < 5; i++)
{
    for (int j = 0; j < 5; j++)
    {
        printf("i: %d, j: %d  ", i, j);
    }
printf("\n");
}

 

=> 

i: 0, j: 0  i: 0, j: 1  i: 0, j: 2  i: 0, j: 3  i: 0, j: 4
i: 1, j: 0  i: 1, j: 1  i: 1, j: 2  i: 1, j: 3  i: 1, j: 4
i: 2, j: 0  i: 2, j: 1  i: 2, j: 2  i: 2, j: 3  i: 2, j: 4
i: 3, j: 0  i: 3, j: 1  i: 3, j: 2  i: 3, j: 3  i: 3, j: 4
i: 4, j: 0  i: 4, j: 1  i: 4, j: 2  i: 4, j: 3  i: 4, j: 4

 

 

 

// *출력

for (char i = 0; i < 5; i++)                              // 줄의 개수
{
    for (char j = 0; j < 5; j++)                         // 한 줄의 별의 개수
    {
        printf("*");
    }
    printf("\n");
}

 

=>

*****
*****
*****
*****
*****

 

 

 

// *출력2

for (int i = 0; i < 5; i++) // 줄을 출력해줌
{

for (int j; j < i; j++) // 공백을 출력해줌, i를 이용해 공백 횟수를 조절할 수 있다
{
printf(" ");
}
for (int j = 0; j < 2; j++) // *을 출력해줌
{
printf("*");
}
printf("\n");

}

728x90