1. if
if의 뜻은 만약 ~은, ~으로 이며 이 뜻과 같이 쓰인다.
보통 선택 제어문은 if와 swtich로 쓰이며 둘 모두 선택의 기준을 제시하고 상황의 따라 다른 값이나 내용을 적용하거나 기준이 부합할 때까지 특정 작업을 반복하게 제어하는 명령문이다.

예제-1
#include <stdio.h>

01 main()
02 {
03 int a;

04 printf("점수를 입력하세요: ");
05 scanf("%d", &a);
  
 06 if( a >= 100 )
 07 printf("A+ 당신은 열공쟁이♡");
 08 else
 09 if( a >= 95 )
 10  printf("A 아쉽네요 A+까지 %d 남았습니다.", 100-a);
 11 else
 12 if( a >= 90 )
 13  printf("B+수업좀 잘 나오지? A+까지 %d점 모자릅니다.\n출석점수가 떨어지네요\n",100-a);
 14  else
 15 if( a >= 85 )
 16  printf("B학점입니다. A+까지 %d점 모자르네요\n", 100-a);
 17 else
 18 if( a >= 80 )
 19  printf("C+\n");
 20 else
 21 if( a >= 75 )
 22  printf("C\n");
 23 else
 24 if( a >= 70)
 25  printf("D+\n");
 26 else
 27 if( a >= 65 )
 28  printf("D\n");
 29  else
 30  if( a >= 60 )
 31  printf("E+\n");
 32 else
 33 if( a >= 55)
 34  printf("E\n");
 35 else
 36  
 37  printf("F\n");


 38 }

보통 사칙연산에 많이 쓰인다. 또한 조건을 줘서 조건에 맞지 않으면 맞는 다른 조건의 부분으로 넘어가게 된다.
위에 사용된 예제는 else를 넣어서 이용한 중첩if문의 예제입니다. 보통 if문의 경우에는 if 문만 이용해서 만들지만 한가지의 답만 있을 경우 else를 이용하지않고

#include <stdio.h>

01 main()
02 {
03 int a;

04 printf("점수를 입력하세요: ");
  
 06 if( a >= 100 )
 07 printf("A+ 당신은 열공쟁이♡");
 08 }

이런식으로 끝나기 마련이다. 이런 식으로 만들면 한가지의 조건만 가지고 쓰기때문에 여러가지 조건을 붙게 될경우 else를 넣어서 위에 예제-1 처럼 많은 조건을 넣을 수 있다. 예제-1을 실행 시키고 94를 넣으면 06, 09줄에 있는  if( a >= 100 ),  if( a >= 95 ) 는 거짓이 되고 12줄에 있는  if( a >= 90 )는 참이 된다.
이런 식으로 else를 이용하여 여러 가지의 조건을 만들 수 있습니다.
또한 중첩if문이라고 해서 어렵게 생각 할 필요는 없다. if문 더 써 넣어 주면 되기떄문이다.

2. switch
사람들은 유두리 있게 돌려서 말을 할 떄와 직설적으로 말 할 떄가 있듯이, C언어에선 if문을 이용해서 참과 거짓 즉 돌려서 말을 했다면 switch부분에서는 직설적으로 1이면 1 , 2이면 2로 여러것중 한개를 선택하는 것이다. 쉽게 말해서 switch는 자판기라고 생각하면 이해하기가 편하다.
예제 2-1
#include<stdio.h>
main()
{
   int a;
   printf("1~2 중에 선택하세요 : ");
   scanf("%d", &a);

   switch (a)
{
case 1 :
       printf("1을 선택하셨습니다.\n");
       break;
case 2 :
       printf("1을 선택하셨습니다.\n");
       break;
deafalut :
       printf("1, 2 번 중 선택하세요");
 }
}

예제 2-1에서와 같이 실행해보세요
case문은 선택 받은 번호를 지정해주는 역활을 합니다. 또한 break는 1번을 선택했는데 2번까지 실행이 되지 않게 해주는 역활을 함으로 break를 써서 다음 문까지 출력해주는 것을 막아주는 역활을 합니다.
break를 씨지 않고 출력을 해보세요.

♧위 내용은 혼자 책을 봐가면서 정리하면서 공부해 놓은 것입니다. 질문 하시기 전에 열심히 책을 보고
   지식인을 봐가면서 알아본후에 물어보세요^^

저작자 표시 비영리 변경 금지
Posted by 집사™

댓글을 달아 주세요

1. 관계연산자.

관계연산자는 어떤 것이 큰지, 작은지, 같은지를 비교함으로 결과에 참(숫자표시 1)이나 거짓(숫자표시 2)으로 나온다. 단독으로 사용되는 경우는 드물고 주로 조건식 if , for , while 문등에 쓰인다.

쉽게 표현해서 a < b 식이 있을때 a는 1이면 b는 2이상이 되야 참이 되고, a가 1이면 b는 0일때 거짓이 된다는 표현이다.

관계연산자의 종류에는
               관계 연산자                    뜻                  설명 
                    ==                  같다.        두 값이 동일하면 참
                    >                  크다.            왼쪽이 크면 참 
                   <                   작다.          왼쪽이 작으면 참
                   >=            크거나 같다.      왼쪽이 크거나 같으면 참 
                   <=             작거나 같다.      왼쪽이 작거나 같으면 참
                    !=               같지 않다.           두 값이 다르면 참

사용 예를 만들어 봅시다.

ex1)

01 #include <stdio.h>
02 int main()
03 {
04       int a = 10, b = 20;
05       printf("%d == %d는 %d\n", a, b, a==b);  // a==b는 a,b가 같다라는 표현을 해준것입니다.
                                                                           // 결과 값으로는 거짓이라고 나오겠죠? ^^
06       printf("%d > %d는 %d\n", a, b, a>b);
07       printf("%d < %d는 %d\n", a, b, a<b);
08       printf("%d >= %d는 %d\n", a, b, a>=b);
09       printf("%d <= %d는 %d\n", a, b, a<=b);
10       printf("%d != %d는 %d\n", a, b, a!=b);
11 }

위에 예제에서 a==b 나 a>b를 왜 해줘야 하는지 의문을 가지는 분들이 있는데 %d > %d만으로 결정을 할 수가 없습니다. 08번 printf("%d >= %d는 %d 이다.\n", a, b, a>=b); 문항에서 a,b 를 04번에 있는 int a,b값을 08번 문항에 연결시켜줬지만 컴퓨터는 이것을 뭘 하라는건지 자세하게 설명을 해줘야 하기떄문에 a>b라는 것을 구하라고 한번 더 말해 주는것입니다.

2. 논리 연산자

주로 여러가지 조건을 복합해서 사용하는 연산자이며 사용하는 것은 &&, ||, ! 세가지 이다.
&&는 그리고, ||는 또는, !는 부정의 의미를 가지고 있다.
&&로 예를 들면 'a는 10보다 크다 그리고 a는 20보다 작다. c로 표현을 하면 (a>10) && (a<20)이다.
         논리 연산자               뜻             사용법               설명 
             &&            그리고      (a=>10) && (a<20)  a는 10이상이고 20미만 
              ||             또는   (a == 1) || (a ==100)      a값이 1 또는 100 
               !         ~가 아니다         !(a == 100)     a는 100이 아니다 

ex2)

01 #include <stdio.h>
02 main()
03 {
04       int a = 50;
05       printf(" && 연산 = %d\n", (a>=100) && (a <=200)); //그리고 (a는 100보다 크거나 같고 200보다
                                                                                // 작거나 같다.
06       printf(" || 연산 = %d\n", (a>=100) || (a <=200)); // 또는 a는 100보다 크거나 같다. 또는 a는 200
                                                                               //   보다 작거나 같다. 둘중 하나가 맞으므로 참
07       printf(" ! 연산 = %d\n", !(a == 100)); // ~가 아니다 부정이므로 참이 된다.
08 }

3. 비트 연산자

비트란? 컴퓨터에서 다루는 정보는 전기적으로 On 상태 (1)와 Off상태(0)으로 나타낼 수 있습니다. 이 1이나 0 값을 가지는 정보의 최소 기본 단위를 비트라고 합니다. 또한 비트가 8개(8비트)을 바이트라고 합니다.

비트 연산자는 정수나 문자 등을 2 진수로 변환한 후에 각 자리의 비트끼리 연산을 수행한다.

♧비트 연산자를 공부 하실려면 따로 논리회로를 보고 공부하시면 더욱 좋습니다.

연산자를 이용한 예제 (출처: C언어의 기초(한빛미디어))

#include <stdio.h>

main()
{
              int year;
              
              printf("년도를 입력하세요: ");
              scanf("%d", &year); // 키보드로 년도 입력을 받아서 &year로 저장을 한후 if year에서 받아서
                                          //printf year로 옴겨져서 윤년이 나옴

              if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) // %는 나머지 값을 계산 하
                                                                                                      //는 겁니다.
             printf("%d 년은 윤년입니다.\n",year);
             else
             printf("%d 년은 윤년이 아닙니다. \n", year);
}


♧위 내용은 혼자 책을 봐가면서 정리하면서 공부해 놓은 것입니다. 질문 하시기 전에 열심히 책을 보고
   지식인을 봐가면서 알아본후에 물어보세요^^
저작자 표시 비영리 변경 금지
Posted by 집사™

댓글을 달아 주세요

저작자 표시 비영리 변경 금지
Posted by 집사™

댓글을 달아 주세요

  1. 花娘子★ 2008/10/09 23:38  댓글주소  수정/삭제  댓글쓰기

    저는 이걸 만화책으로 봣는데..
    남자주인공...인가요?
    그 아빠가 딸을 지극히(...)사랑하는 여자애의 무기인 놈..
    걔가 침을 질질 흘리는게 맘에 안들어서 보질않았네요(....)
    참고로 요즘 보는 애니는
    「시끌별녀석들」이랑「메종일각」을 재탕뛰고 있네요 ㅎㅎ
    또 개인적으로 추천하는 애니는 「Serial Experiments lain」라는것도 엄청난 추천1!+ㅁ+
    별이 다섯개!!!짜리 추천작입니다 ㅎㅎ

  2. 집사™ 2008/10/10 01:24  댓글주소  수정/삭제  댓글쓰기

    ^^ 추천작 감사..남자 주인공은 아닙니다. 그냥 주인공의 배경인물중 한명으로 나오지만 영향력은 있죠

  3. pikalee43 2008/10/14 02:43  댓글주소  수정/삭제  댓글쓰기

    주인공이 아빠에게 무지 사랑받는 딸 맞죠?

    주인공이 마치 그 주변인같은, 주인공보다 강한 주변인물들이란 -0-

    너무 많아서..

    그래도 재밌긴 하더군요.

    저도 만화책으로 보긴했지만.,