3. ³í¸® ¿¬»êÀÚ

 

³í¸® ¿¬»êÀÚ(Logical operator)´Â ¿¬»êÀÚ°£ÀÇ ³í¸®ÀûÀÎ °ü°è(Âü°ú °ÅÁþ)¸¦ ³ªÅ¸³¾ ¶§ »ç¿ëÇÏ´Â ¿¬»êÀÚ·Î ¼¼ °¡Áö ¿¬»êÀÚ°¡ Àִµ¥, °¢°¢ AND, OR, NOTÀÇ ±â´ÉÀ» ¼öÇàÇÕ´Ï´Ù. ¶ÇÇÑ °ü°è ¿¬»êÀÚ¿Í ¸¶Âù°¡Áö·Î ÂüÀ̸é 1, °ÅÁþÀ̸é 0ÀÇ °á°ú °ªÀ» °®½À´Ï´Ù. ³í¸® ¿¬»êÀÚ °£ÀÇ ¿ì¼± ¼øÀ§´Â NOT ¡æ  AND ¡æ OR ÀÔ´Ï´Ù.

 

¿¬»êÀÚ

±â ´É

»ç¿ë ¿¹

¿ì¼±
¼øÀ§

!

ÇÇ¿¬»êÀÚÀÇ °ªÀÌ ÂüÀÌ¸é °ÅÁþÀ¸·Î,

°ÅÁþÀ̸é ÂüÀ¸·Î Àüȯ

re = !a

1

&&

µÎ ÇÇ¿¬»êÀÚÀÇ °ªÀÌ ¸ðµÎ ÂüÀ̸é Âü,

Çϳª¶óµµ °ÅÁþÀÌ¸é °ÅÁþ

re = a && b

re = a>10 && b<20

2

||

µÎ ÇÇ¿¬»êÀÚÀÇ °ªÀÌ Çϳª¶óµµ ÂüÀ̸é Âü,

µÑ ¸ðµÎ °ÅÁþÀÌ¸é °ÅÁþ

re = a || b

re = a>10 || b<20

3

 

Áø¸®Ç¥

 C¾ð¾î¿¡¼­´Â 0Àº FÀ̰í 1À» Æ÷ÇÔÇÑ ¸ðµç ¼ýÀÚ´Â TÀÔ´Ï´Ù.

 

A

B

!A

!B

A&&B

A||B

T

T

F

F

T

T

T

F

F

T

F

T

F

T

T

F

F

T

F

F

T

T

F

F

 

¡¼¼Ò½º ÇÁ·Î±×·¥¡½

// File Name : ex048_operator08.c

#include <stdio.h>

int main( ) {

  int n1;    n1=0;

  int n2;    n2=1;

  int n3;    n3=5;

  int n4;    n4=-122;

  printf("%d %d %d %d %d %d %d %d", n1, !n1, n2, !n2, n3, !n3, n4, !n4);

  return 0;

}

 

¡¼½ÇÇà °á°ú¡½

0 1 1 0 5 0 -122 0

 

 

¡¼¼Ò½º ÇÁ·Î±×·¥¡½

// File Name : ex049_operator09 .c

#include <stdio.h>

int main( ) {

  int a;

  int b;

  printf("====================== \n");

  printf("a    b  a&&b   a || b \n");     

  printf("====================== \n");

  a=0;  b=0;     

  printf("%-4d %-4d %-6d %-6d \n", a, b, a && b, a || b); 

 

  a=0;  b=1;

  printf("%-4d %-4d %-6d %-6d \n", a, b, a && b, a || b); 

  a=1;  b=0;

  printf("%-4d %-4d %-6d %-6d \n", a, b, a && b, a || b); 

 

  a=1;  b=1;

  printf("%-4d %-4d %-6d %-6d \n", a, b, a && b, a || b); 

  return 0;

}

 

¡¼½ÇÇà °á°ú¡½

======================

a    b  a&&b   a || b

======================

0    0    0      0

0    1    0      1

1    0    0      1

1    1    1      1

 

»ê¼ú¿¬»êÀÚ¿¡¼­ÀÇ ¿ì¼± ¼øÀ§¿Í °ü°è¿¬»êÀÚ¿¡¼­ÀÇ ¿ì¼± ¼øÀ§, ³í¸® ¿¬»êÀÚ¿¡¼­ÀÇ ¿ì¼± ¼øÀ§¿¡ ´ëÇÏ¿©¼­´Â °¢°¢ ±â¼úÇÏ¿´½À´Ï´Ù. ±×·³ »ê¼ú¿¬»êÀÚ, °ü°è¿¬»êÀÚ, ³í¸® ¿¬»êÀÚ °£ÀÇ ¿ì¼± ¼øÀ§´Â ¾î¶»°Ô µÉ±î¿ä?

 

x°¡ 5º¸´Ù Å©°Å³ª °°°í 40º¸´Ù ÀÛÀº°¡? ±×·¸Áö ¾ÊÀº°¡¸¦ ÆÇ´ÜÇÏ·Á¸é ¾î¶»°Ô ÇÏ¿©¾ß ÇÒ±î¿ä?

 

¼öÇп¡¼­´Â  ·Î Ç¥ÇöÇÏ¸é µË´Ï´Ù. ±×·±µ¥ C¾ð¾î¿¡¼­´Â ¾î¶»°Ô ÇÏ¿©¾ß ÇÒ±î¿ä?

À» ºÐ¼®Çϸé ÀÎ Á¶°ÇÀ» ¸¸Á·ÇÏ¿©¾ß ÇÏ°í ±×¸®°í ÀÎ Á¶°Çµµ °°ÀÌ ¸¸Á·ÇÏ¿©¾ß ÇÕ´Ï´Ù.

Áï   and ·Î Ç¥½ÃÇÏ¿©¾ß ÇÕ´Ï´Ù.

ù ¹øÂ°·Î,  Á¶°ÇÀÌ ¸Â´Â°¡ ÆÇ´ÜÇÏ¿©¾ß Çϰí

µÎ ¹øÂ°·Î,  Á¶°ÇÀÌ ¸Â´Â°¡ ÆÇ´ÜÇÏ¿©¾ß Çϰí

¼¼ ¹øÂ°·Î, µÎ Á¶°ÇÀÌ °°ÀÌ ¸Â´Â°¡¸¦ ÆÇ´ÜÇÏ¿©¾ß ÇÕ´Ï´Ù.

Áï  À̾î¾ß ÇÕ´Ï´Ù.

µû¶ó¼­ °¢ ¿¬»êÀÚ°£ÀÇ ¿ì¼± ¼øÀ§¸¦ µÎ´Â °æ¿ì¿¡ ³í¸®¿¬»êÀÚ º¸´Ù´Â °ü°è ¿¬»êÀÚ¸¦ ¸ÕÀú ÇÏ´Â °ÍÀÌ ¹Ù¶÷Á÷ÇϰÚÁÒ?

±×·¡¼­ c¾ð¾îÀÇ °¢ ¿¬»êÀÚ °£ÀÇ ¿ì¼±¼øÀ§´Â ´ÙÀ½°ú °°½À´Ï´Ù.

 

 

¡¼¿¬»ê ¼øÀ§¡½

»ê¼ú¿¬»êÀÚ  °ü°è ¿¬»êÀÚ  ³í¸®¿¬»êÀÚ

 

¡¼¼Ò½º ÇÁ·Î±×·¥¡½

//File Name : ex049_operator10.c

#include <stdio.h>

int main(void){

  int a=10, b=5, c=3, result1, result2;

  result1 = a < b || a != c;

  result2 = !a || b!=c && a >= 10;

  printf("result1=%d, result2=%d", result1, result2);

  return 0;

}

 

¡¼½ÇÇà °á°ú¡½

resutl1=1, result2=1

 

À§ÀÇ ÇÁ·Î±×·¥Àº ¿¬»êÀÚÀÇ ¿ì¼± ¼øÀ§°¡ »ê¼ú ¡æ °ü°è ¡æ ³í¸® ¿¬»êÀÚÀÇ ¼øÀ¸·Î ÁøÇàµÇ¸ç, ³í¸® ¿¬»êÀÚ´Â ! ¡æ && ¡æ || ¼øÀ¸·Î ÁøÇàµÊÀ» ±â¾ïÇØ¾ß ÇÑ´Ù. µû¶ó¼­ re2ÀÇ ¼ö½ÄÀº

 

!=  ¡æ    >=  ¡æ      !    ¡æ    &&   ¡æ   ||   

 

¼øÀ¸·Î ¿¬»êµÇ¾î Âü(1)ÀÌ Ãâ·ÂµÈ´Ù.

 

¡¼¼Ò½º ÇÁ·Î±×·¥¡½

#include <stdio.h>

int main(void){

  int a=10, b=5, re1, re2;

  re1 = (a = a - 5) || (b = b + 5);

  printf("re1=%d  a=%d  b=%d\n", re1, a, b);

  re2 = (a = a - 5) && (b = b - 2);

  printf("re2=%d  a=%d  b=%d\n", re2, a, b);

}

 

¡¼½ÇÇà °á°ú¡½

re1=1  a=5  b=5

re2=0  a=0  b=5

 

³í¸® ¿¬»êÀÚ »ç¿ë½Ã ÁÖÀÇÇÒ Á¡Àº, || ¿¬»êÀÚ »ç¿ë½Ã Áº¯ÀÇ ¼ö½ÄÀÌ ÂüÀÏ ¶§´Â ¿ìº¯ÀÇ ¼ö½ÄÀ» ¿¬»êÇÏÁö ¾ÊÀ¸¸ç, && ¿¬»êÀÚÀÇ Áº¯ÀÇ ¼ö½ÄÀÌ °ÅÁþÀÏ ¶§´Â ¿ìº¯ÀÇ ¼ö½ÄÀ» ¿¬»êÇÏÁö ¾Ê´Â´Ù´Â °ÍÀÌ´Ù. ¿Ö³ÄÇϸé || ¿¬»êÀº µÑ Áß Çϳª ÀÌ»óÀÌ ÂüÀÌ¸é °á°ú°¡ ÂüÀ̹ǷΠÀÌ¹Ì Áº¯ÀÇ ¿¬»ê °á°ú°¡ ÂüÀÌ µÇ¾úÀ¸¹Ç·Î ¿ìº¯ÀÇ ¿¬»ê °á°ú¿¡ °ü°è¾øÀÌ °á°ú°¡ ÂüÀÌ µÇ±â ¶§¹®ÀÌ´Ù. && ¿¬»êµµ ¸¶Âù°¡Áö·Î Áº¯ÀÌ °ÅÁþÀ̹ǷΠ¿ìº¯À» ¿¬»êÇÏÁö ¾Ê¾Æµµ °á°ú´Â ¹«Á¶°Ç °ÅÁþÀÌ µÈ´Ù.