C, C++

9 : c/c++ 강좌 "반복제어문 3"

알 수 없는 사용자 2022. 1. 19. 10:29
728x90
반응형

오늘은 지난 시간에 이어 반복제어문의 응용에 대해 알아보도록 하겠습니다. 우선 지난 시간에는

간단한 반복제어문의 사용 방법에 대해 알아보았습니다. 오늘은 우선 반복제어문의 다른 사용 방법에

대해 알아보도록 하겠습니다. 우선 for 문에서 조건식이 없는 반복문을 선언 할수 있습니다. 

for(int i = 1; ; i++){} 이런 식으로 선언을 하면 무한반복문을 선언 한것입니다. 이 반복문은 while(1) 

으로 나타낼수 있습니다. 이 두 반복제어문 모두 다 무한반복문이기 때문에 break; 코드를 선언하기 전까지는

무한으로 실행 됩니다. 이번에는 N중 반복제어분에 대해 알아보도록 하겠습니다. 우선 간단하게 

*

**

*** 

모양을 출력 하는 코드를 만들어 보도록 하겠습니다.

#include <stdio.h>

int main()
{
    int num;

    scanf("%d",&num);

    for(int i=1;i<=num;i++)
    {
        for(int j = 1;j <= i; j++)
        {
            printf("*");
        }
        printf("\n");
    }
}

한번 코드를 살펴 보겠습니다. 우선 num 이라는 변수를 통해 숫자를 입력 받고 그 변수 까지만 i 를 증가 시킵니다. 

i 가 1일때 j 도 1만큼 되고 i 가 2일 때도 같습니다.  i 는 행 j 는 열 입니다.  * 을 i와 j 의 조건에 맞게 출력한 후 

줄 바꿈을 하고 다시 처음으로 돌아가서 i, j 의 값을 증가 시키고 반복 작업을 하는 원리 입니다. 이번에는 증감식이

감소하는 경우를 알아 보겠습니다. 증감식의 감소 역시 여러 가지 경우에 사용 하는데 기본적으로 큰 값 -> 작은 값

으로 이동 합니다. 이 역시 * 을 출력 하는 코드로 만들어 보겠습니다.

#include <stdio.h>

int main()
{
    int num;

    scanf("%d",&num);

    for(int i=num;i>=1;i--)
    {
        for(int j = i;j >= 1; j--)
        {
            printf("*");
        }
        printf("\n");
    }
}

이렇게 간단하게 코드를 작성 할수 있습니다. 이 경우에는 3을 num 값으로 입력 할 시 이렇게 출력 됩니다. 

* * *

* *

*

이렇게 간단하게 증감식의 감소, 증가의 차이점을 알아볼수 있습니다. 말 그대로 증가는 값이 증가되고 감소는

값이 감소된다고 생각 하면 간단합니다. 구체화된 코드를 작성 할때는 while 문 보다 for 문을 사용 합니다. 

다음으로는 간단하게 한번  

    *

  ***

 ****

*****

이런 식으로 코드를 출력 하는 프로그램을 만들어 보도록 하겠습니다.

#include <stdio.h>

int main()
{
    int num;

    scanf("%d",&num);

    
    for(int i=1;i<=num;i++)
    {
        for(int j=1;j<=num - i;j++)
        {
            printf(" ");
        }

        for(int j=1;j <= i * 2 - 1;j++)
        {
            printf("*");
        }
        printf("\n");   
    }
    return 0;
}

자 이렇게 코드를 작성 할수 있는데 잠시 아까와 다른 점을 살펴 보겠습니다. 우선 이번에는 공백을 

출력 하여 * 별 앞에 공백을 넣어 주었습니다. 이는 다른 for 문을 이용 해서 처리 하였습니다. 우선 

공백은 num - i 라고 되어 있는데 이렇게 되는 이유는 만약에 4가 입력 되었다고 하면 초기 i 의 값은 1 이기 

때문에 공백을 3칸 주어야 합니다. 왜냐하면 * 모양을 1식 증가하여 출력 되기 때문에 정해져 있는 값에서

i 만큼 빼주어 공백의 개수를 줄인다고 생각 하면 됩니다. 그 다음에는 * 별 개수가 1 , 3 , 5 , 7 과 같이

홀수 개수로 증가 하기 때문에 2 * i - 1 이라는 수식을 세운 후 그 식을 코드로 변경 했다고 하면 

이해하기 간단 합니다. 그러면 오늘은 여기까지 하고 다음 시간에는 구조체에 대해 알아보도록 하겠습니다

'C, C++' 카테고리의 다른 글

11 : c/c++ 강좌 "배열 2"  (0) 2022.02.07
10 : c/c++ 강좌 "배열 1"  (4) 2022.01.21
8 : c/c++ 강좌 "반복제어문 2"  (0) 2022.01.17
7 : c/c++ 강좌 "반복제어문 1"  (0) 2022.01.17
6 : c/c++ 강좌 "선택제어문"  (0) 2022.01.17