본문 바로가기
카테고리 없음

c언어 5 (조건문과 반복문)

by 루미..1 2024. 1. 8.

지난 포스팅에는 연산자에 대해 알아보았습니다.

연산자는 c언어에서 가장 기본적인 부분이면서도 굉장히 중요하기 때문에 반드시 외워둬야 하는 부분입니다.

 

<간단 복습>
1) i++와 ++i는 단순히 값을 증가시키는것이 목적이라면 그 기능이 동일합니다.
 2) 100 < x <200 은 잘못된 표현입니다.
     (100 < x) && (x < 200) 가 올바른 연산 식 표현입니다. &&는 앤드앤드라고 읽음.
3) i++는 i+=1 과 동일한 표현이다. 또한 i = i+1과도 동일한 표현이다. 모두 1만큼 증가시킨다는 의미를 가지고 있다.

 

 

 

 

 

<조건문과 반복문>

조건문과 반복문은 프로그래밍에 있어서 논리의 흐름을 정하는 가장 기본적인 기술입니다.

조건문은 쉽게 말해 조건에 따라 결정을 내리는 것을 말합니다. 학점을 결정할 때 90점 이상이면 A+라고 하는 것도 조건문에 해당합니다. 

반복문은 반복적으로 같은 처리를 되풀이하는 것을 말합니다.

예를들어 100명의 학생이 있을 때 학생의 각각의 학점을 출력하려고 한다면 100명의 학점, 출력 코드를 모두 작성하는 것은 비효율적입니다. 따라서 반복문을 이용하여 그러한 과정을 대신할 수 있는 것입니다. 

조건문과 반복문의 문법은 처음에는 복잡해 보이지만 익숙해지만 아주 간단합니다.

 

 

 

조건문과 반복문을 제대로 학습해야 프로그래밍을 잘 할 수 있습니다.

1)if문을 이용하여 절댓값을 구하는 프로그램을 작성해보자.

2)점수에 따라서 다른 학점을 부여하는 프로그램을 작성해보자.

3)윤년을 판단하는 프로그램을 작성해보자

4)while문을 이용하여 1부터 1000까지의 합을 출력하는 프로그램을 작성해보자.

5)for문을 이용하여 사각형을 출력하는 프로그램을 작성해보자.

6)for문을 이용하여 피라미드를 출력하는 프로그램을 작성해보자.

 

 

 

 

#include<stdio.h>

 

int main()

{

   int x = -150;

   if(x<0)

   { 

       x = -x;

   }

   printf("x의 절댓값은 %d입니다.\n", x);

   return 0;

}

 

 

위 코드의 결과값은 다음과 같이 나옵니다.

x의 절댓값은 150입니다.

 

 

 

 

 

그다음으로 할 것은, 점수에 따라서 서로 다른 학점을 부여하는 프로그램을 만들어보는 것입니다.

 

#include<stdio.h>

 

int main()

{

   int score = 85;     ->학생의 점수를 의미합니다.

   if ( score >= 90 )

   {

      pritnf("당신의 학점은 A입니다. \n");

    }

    else if(score >= 80)

    {

       printf("당신의 학점은 A입니다.\n");

     }

    else if(score >= 70)

    {

       printf("당신의 학점은 A입니다.\n");

    }

    else 

    {

       printf("당신의 학점은 f입니다.\n");

}

 

 

이렇게 간단하게 점수에 따라서 서로 다른 출력을 하는 프로그램을 만들어 보았습니다.

 

 

 

 

윤년 알고리즘을 만들어 볼텐데요,

 

 

4년마다, 그렇지만 100년 단위일 때는 윤년에 해당하지 않도록.

400년 단위일 때는 어떤 상황이든간에 윤년으로 설정한다.

 

 

#include<stdio.h>

 

int main()

{

     int year = 2016;

     if ((year % 4 == 0 && year % 100 != 0 ) || year % 400 == 0 )

     {

          printf("%d년은 윤년입니다. \n", year);

     }

     else

     {

           printf("%d년은 윤년이 아닙니다. \n",year);

     }

}

 

 

 

 

다음으로 해볼 것은 1부터 1000까지 합을 구하는 프로그램을 만들어 보는 건데요, 여기서 반복문이 활용이 됩니다.

 

#include<stdio.h>



int main()

{

     int i = 1, sum = 0;   

     while(i <= 1000)

     {

          sum = sum + i;

          i++;

     }
     printf("1부터 1000까지의 합은 %d\n",sum);
     

}

 

 

위 결과값은 아래와 같이 나온다.

1부터 1000까지의 합은 500500

 

 

 

 

 

 

 

다음으로 할 것은 사각형 출력하기입니다.

for문은 프로그래밍에서 가장 많이 사용되는 반복문입니다.

 

 

#include<stdio.h>

#define N 10

 

int main()

{

   int i, j;

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

   {

          for(j = 0; j <N ; j++)

          {

       printf("*");

           }

     }

 

}

 

 

 

 

for문은 약간 헷갈릴 수 있는 문법인데, 원리만 정확하게 이해하면 어렵지 않습니다.  (외우는게 효과적)

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

i = 0: 기화시키는 부분

i < N : 건 부분

i++ : 반복하면서 감이 이뤄지 부분

 

 

 

 

위 결과값으로는 

i가 10까지 증가하는 동안 j는 0일때 10번, .....10일때 10번 이렇게 총 100번을 수행하게 되서 

* 별이 100개 

 나온다.

 

 

 

여기서, 사각형을 어떻게 만들 수 있을까?

바로, j가 10번씩 출력될 때 줄바꿈을 하면 된다.

즉, 

 

#include<stdio.h>

#define N 10

 

int main()

{

   int i, j;

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

   {

          for(j = 0; j <N ; j++)

          {

              printf("*");

           }

              printf("\n");

     }

 

}

 

 

 

 

 

 

 

 

 

 

 

다음에는, 피라미드형식을 출력해보도록 하겠습니다.

 

#include<stdio.h>
#define N 20

int main()
{
   int i, j;        
   for(i = 0; i < N; i++)
     {
        for(j = N-i-1; j>0;j--)
           {
               printf(" ");
           }
        for(j = 0; j<i; j++)
           {
                 printf("★");
            }
        for(j = 0; j<i-1; j++)
           {
                 printf("★");
            }
            printf("\n");
    }
}

 

7끝