3Ç× ¿¬»êÀÚ

»ïÇ× ¿¬»êÀÚ(ternary operator), Á¶°Ç ¿¬»êÀÚ(Conditional operator)´Â ¶Ç´Â ¼±Åà ¿¬»êÀÚ¶ó°íµµ Çϸç, Á¶°ÇÀÇ ¸¸Á· ¿©ºÎ¿¡ µû¶ó 󸮵Ǵ ³»¿ëÀ» ´Þ¸®ÇÒ ¼ö ÀÖ´Â ¿¬»êÀÚÀÔ´Ï´Ù. »ïÇ× ¿¬»êÀÚ´Â ´Ù¸¥ ¾ð¾î¿¡´Â Á¸ÀçÇÏÁö ¾Ê´Â C¾ð¾î¸¸ÀÇ µ¶Æ¯ÇÑ ¿¬»êÀÚÀ̸ç, C¾ð¾î¿¡¼­µµ À¯ÀÏÇÏ°Ô ÇÇ¿¬»êÀÚ¸¦ ¼¼ °³³ª °¡Áö´Â Á¶°Ç ¿¬»êÀÚÀÔ´Ï´Ù.

 

¡¼Çü½Ä¡½

(Á¶°Ç) ? ó¸®1 : ó¸®2;

 

Áï, Á¶°ÇÀ» ¸¸Á·Çϸé ó¸®1À» ¼öÇàÇϰí Á¶°ÇÀ» ¸¸Á·ÇÏÁö ¾ÊÀ¸¸é ó¸®2¸¦ ¼öÇàÇÕ´Ï´Ù.

 

if¹®À» »ç¿ëÇϸé ÀÌÇØÇÏ±â ÆíÇÏ°í ´Ù¾çÇÏ°Ô Ã³¸®ÇÒ ¼ö ÀÖ´Ù. Á¦ 4Àå¿¡¼­ if¹® ÀÚ¼¼È÷ ´Ù·ç¹Ç·Î ¿©±â¼­´Â Á¶°Ç¿¡ µû¶ó¼­ ½ÇÇàÇÏ´Â ¹®ÀåÀÌ ´Ù¸¥ ¸í·ÉÀ̶ó°í¸¸ ¾Ë¾ÆµÎ¸é ÁÁ°Ú½À´Ï´Ù. ±×·¯³ª ÀÌ 3Ç׿¬»êÀÚ´Â ¾ÆÁÖ À¯¿ëÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î¼­ ´ÙÀ½ ÇÁ·Î±×·¥À» ¹Ýº¹ÀûÀ¸·Î ¼öÇàÇÏ°Ô µÇ¸é 0°ú 1À» ¹Ýº¹ÀûÀ¸·Î º¯°æÇÏ´Â ÇÁ·Î±×·¥ÀÔ´Ï´Ù.

 

// sw¿¡ 0ÀÌ ±â¾ïµÇ¾î ÀÖÀ¸¸é 1·Î ¹Ù²Ù°í 1ÀÌ ±â¾ïµÇ¾î ÀÖÀ¸¸é 0À¸·Î ¹Ù²Þ

sw=1;

if (sw==0)   sw=1;

else

  sw=0;

 

if (sw==0)

  sw=1;

else

  sw=0;

 

sw¿¡ 1ÀÌ ±â¾ïµÇ¾î ÀÖÀ¸¹Ç·Î sw==0 Àº °ÅÁþÀ̹ǷΠsw¿¡ 0±â¾ï

sw¿¡ 0ÀÌ ±â¾ïµÇ¾î ÀÖÀ¸¹Ç·Î sw==0 Àº ÂüÀ̹ǷΠsw¿¡ 1±â¾ï

 

µû¶ó¼­ sw°ªÀº °è¼ÓÀûÀ¸·Î 0°ú 1À» Åä±ÛÇÏ°Ô µË´Ï´Ù.

 

À̸¦ »ïÇ× ¿¬»êÀÚ¸¦ »ç¿ëÇϸé

sw=  (sw==0) ? 1  : 0;

·Î ó¸®ÇÏ¸é µË´Ï´Ù.

 

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

//File Name : ex049_operator11.c

#include<stdio.h>

int main(){

  int sw=0, i;

  for(i=0;i<=5;i++){   // 5¹ø ¹Ýº¹ ½ÇÇàÇÏ´Â ¸í·É

   sw=  (sw==0) ? 1  : 0;

   printf("%d ",sw);

  }

  return 0;

}

 

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

1 0 1 0 1 0

 

 ¿¬»êÀÚ ¿ì¼± ¼øÀ§°¡ 3Ç׿¬»êÀÚ°¡ ¸ÕÀúÀÌ°í ´ëÀÔ¿¬»êÀÚ°¡ µÚ¿¡ ½ÇÇàµÇ±â ¶§¹®¿¡ º¯¼ö°ªÀ» Åä±ÛÇÒ ¼ö ÀÖ½À´Ï´Ù. sw °ªÀÌ 0ÀÌ¸é °á°ú°¡ 1ÀÌ°í ±× 1À» ´Ù½Ã sw¿¡ ÀÔ·ÂÇϹǷΠsw°ªÀº ÃʱⰪ 0¿¡¼­ 1·Î ¹Ù²ò´Ï´Ù. ´Ù½Ã ½ÇÇàÇÒ ¶§ sw°ª¿¡ 1ÀÌ ±â¾ïµÇ¾î À־ sw°ªÀÌ 0ÀÌ ¾Æ´Ï¹Ç·Î °á°ú°ªÀÌ 0À̰í ÀÌ 0À» ´Ù½Ã sw¿¡ ÀÔ·ÂÇϹǷΠsw°ªÀº 0À¸·Î ¹Ù²ò´Ï´Ù.

µû¶ó¼­ ÀÌ 3Ç׿¬»êÀÚ´Â ÀÏÁ¤ Á¶°Ç¿¡ µû¶ó Àü¿øÀÌ ON°ú OFF°¡ ¹Ù²î´Â ÇÇÁöÄà ÇÁ·Î±×·¡¹Ö¿¡¼­´Â ±× °¡Ä¡°¡ Å®´Ï´Ù.