http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=7889 [º¹»ç]
À̹ø °Á¿¡¼´Â if ¹®ÀÇ Ä£±¸ÀÎ switch ¹®¿¡ ´ëÇØ ¹è¿ö º¸µµ·Ï ÇÏ°Ú½À´Ï´Ù. switch ¹®ÀÌ if ¹®ÀÇ Ä£±¸¶ó°í ÇÑ ÀÌÀ¯´Â ÇÏ´Â ÀÏÀÌ Á¤¸»·Î if ¹®°ú ºñ½ÁÇϱ⠶§¹®ÀÌÁÒ. ÀÏ´Ü, ¾Æ·¡ÀÇ ÃÊ-°£´ÜÇÑ °¾ÆÁö ½Ã¹Ä·¹À̼ÇÀ» º¸¼¼¿ä.
/* ¸¶ÀÌÆê */
#include <stdio.h>
int main()
{
int input;
printf("¸¶ÀÌÆê \n");
printf("¹«¾ùÀ» ÇÏ½Ç °ÍÀÎÁö ÀÔ·ÂÇϼ¼¿ä \n");
printf("1. ¹äÁÖ±â \n");
printf("2. ¾Ä±â±â \n");
printf("3. Àç¿ì±â \n");
scanf("%d", &input);
if(input == 1)
{
printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");
}
else if(input == 2)
{
printf("¾ÆÀÌ ½Ã¿øÇØ \n");
}
else if(input == 3)
{
printf("zzz \n");
}
else
{
printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");
}
return 0;
}
¼º°øÀûÀ¸·Î ÄÄÆÄÀÏ ÇÏ¿´´Ù¸é
¿Í °°ÀÌ 3 °¡Áö ¸í·É¿¡ ´ëÇØ ¹ÝÀÀÇÏ°í ¾Ë ¼ö ¾ø´Â ¸í·ÉÀº '¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð' ¶ó°í ³»º¸³À´Ï´Ù.
±×·±µ¥, ¸¸¾à °¾ÆÁö°¡ À§ 3 °¡Áö ¸í·É¸¸ ¹ÝÀÀÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó 10 °¡Áö ¸í·É¿¡ ¹ÝÀÀÇÏ°Ô ÇÏ°í ½Í´Ù°í ÇսôÙ. ±×·¸´Ù¸é ¿©·¯ºÐÀº ¾Æ¸¶µµ ¾Æ·¡¿Í °°ÀÌ ÇÒ °Í ÀÔ´Ï´Ù. (Âü°í·Î ¾Æ·¡ '...' ÀÎ ºÎºÐÀº ÇÊÀÚ°¡ ¾²±â ±ÍÂú¾Æ¼ »ý·«ÇÑ ºÎºÐ ÀÔ´Ï´Ù. )
if (...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
else if(...)
{
...
}
À½, ¾Æ¸¶µµ À§ ¼Ò½ºÄڵ带 º¸´Â »ç¶÷ÀÌ »ó´çÈ÷ ºÒÆíÇÏ°Ô ´À³¥ °ÍÀ̶ó°í »ý°¢µÇÁö ¾Ê³ª¿ä? ¹°·Ð º¸´Â ÀÌ¿¡ µû¶ó ´Ù¸£°ÚÁö¸¸ ¾Æ¸¶ ´ëºÎºÐÀÇ »ç¶÷ÀÌ ±×·¸°Ô »ý°¢ÇÒ °Í ÀÔ´Ï´Ù. ¾Æ¸¶ ½ÇÁ¦·Î »ç¶÷µé°ú ÇÔ²² ÇÁ·ÎÁ§Æ®¸¦ ÁøÇà ÇÒ ¶§ À§¿Í °°Àº ¼Ò½º¸¦ ³²¹ßÇÏ°Ô µÈ´Ù¸é ÀдÂÀ̵µ ºÒÆíÇÏ°í ¾²´Â »ç¶÷µµ ¼Õ¸ñÀÌ ¸¹ÀÌ ¾ÆÇà °Í ÀÔ´Ï´Ù. (¹°·Ð Ctrl + v ½Å°øÀÌ ÀÖ±â´Â ÇÏÁö¸¸...)
µû¶ó¼, À§¿Í °°ÀÌ µ¿ÀÏÇÑ º¯¼ö¿¡ ´ëÇØ ºñ±³¹®ÀÌ ¹Ýº¹µÇ´Â °æ¿ì¿¡ ¾Æ·¡¿Í °°ÀÌ ±ò²ûÇÑ switch ¹®À» Àû¿ë ½Ãų ¼ö ÀÖ½À´Ï´Ù.
/* ¾÷±×·¹ÀÌµå ¹öÀü */
#include <stdio.h>
int main()
{
int input;
printf("¸¶ÀÌÆê ¾÷±×·¹À̵å\n");
printf("¹«¾ùÀ» ÇÏ½Ç °ÍÀÎÁö ÀÔ·ÂÇϼ¼¿ä \n");
printf("1. ¹äÁÖ±â \n");
printf("2. ¾Ä±â±â \n");
printf("3. Àç¿ì±â \n");
scanf("%d", &input);
switch(input)
{
case 1:
printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");
break;
case 2:
printf("¾ÆÀÌ ½Ã¿øÇØ \n");
break;
case 3:
printf("zzz \n");
break;
default :
printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");
break;
}
return 0;
}
¾Æ¸¶ ÄÄÆÄÀÏ µÈ °á°ú´Â À§¿Í µ¿ÀÏÇÏ°Ô ³ª¿Ã °Í ÀÔ´Ï´Ù. ÀÌÁ¦, À§ ¼Ò½º Äڵ忡¼ °¡Àå Áß¿äÇÑ ºÎºÐÀÎ switch ¹® ºÎºÐÀ» »ìÆ캸µµ·Ï ÇսôÙ.
switch(input)
{
case 1:
printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");
break;
case 2:
printf("¾ÆÀÌ ½Ã¿øÇØ \n");
break;
case 3:
printf("zzz \n");
break;
default :
printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");
break;
}
switch ¹®ÀÇ ±âº» ±¸Á¶´Â ¾Æ·¡¿Í °°½À´Ï´Ù.
switch(º¯¼ö)
{
case °ª1:
¸í·Éµé;
break;
case °ª2:
¸í·Éµé;
break;
.. (»ý·«) ..
}
ÀÌ ¶§, º¯¼ö ºÎºÐ¿¡´Â °ª1, °ª2, ... µé°ú ºñ±³ÇÒ º¯¼ö°¡ µé¾î°¡°Ô µË´Ï´Ù. À§ ¿¹Á¦ÀÇ °æ¿ì input À» 1 °ú 2 ¿Í 3 °ú ºñ±³ÇØ¾ß ÇßÀ¸¹Ç·Î º¯¼ö ºÎºÐ¿¡´Â input ÀÌ µé¾î°¡°Ô µË´Ï´Ù. ÀÌ ¶§ switch ¹®¿¡ »ç¿ëµÉ º¯¼ö·Î´Â ¹Ýµå½Ã Á¤¼ö µ¥ÀÌÅ͸¦ º¸°üÇÏ´Â º¯¼ö¿©¾ß ÇÕ´Ï´Ù. ´Ù½Ã¸»ÇØ 'º¯¼ö' ºÎºÐ¿¡ µé¾î°¡´Â º¯¼öµéÀÇ Å¸ÀÔÀº char, short, int, long ÁßÀÇ Çϳª¿©¾ß ÇÕ´Ï´Ù. ¸¸¾à input ÀÌ float À̳ª double À̶ó¸é ÄÄÆÄÀϽà ¿À·ù°¡ ¹ß»ýµÇ°Ô µË´Ï´Ù.
º¯¼ö == °ª1 ÀÏ ¶§, °¡Àå ¸Ç À§ÀÇ case ÀÇ ¸í·ÉÀÌ ½ÇÇàµË´Ï´Ù. À§ ¿¹Á¦ÀÇ °æ¿ì 1 ÀÌ ÀԷµǸé case 1: ÀÌ ÂüÀÌ µÇ¹Ç·Î ±× case ¾ÈÀÇ ³»¿ëµéÀÌ ¸ðµÎ ½ÇÇàµË´Ï´Ù. ÀÌ ¶§ °¢ ¸í·ÉµéÀ» ¸ðµÎ ½ÇÇàÇÑ ÈÄ break ¸¦ ¸¸³ª¸é switch ¹®À» ºüÁ® ³ª°¡°Ô µË´Ï´Ù. ¿¹¸¦ µé¾î¼ÀÌ ÀԷµǾú´Ù¸é case 1: ÀÌ ÂüÀ̹ǷΠprintf("¾ÆÀÌ ¸ÀÀÖ¾î \n"); ¿Í break; °¡ ½ÇÇàµÇ¾î "¾ÆÀÌ ¸ÀÀÖ¾î" ¸¦ Ãâ·ÂÇÏ°í break ¸¦ ÅëÇØ switch ¹®À» ºüÁ® ³ª°¡°Ô µË´Ï´Ù. ¸¸¾à º¯¼ö == °ª2 ¶ó¸é case °ª1 Àº ½ÇÇàµÇÁö ¾Ê°í case °ª2 ¸¸ ½ÇÇàµÇ°Ô µË´Ï´Ù.
¶ÇÇÑ ÁÖÀÇÇÒ Á¡À¸·Î´Â '°ª' ¿¡ À§Ä¡ÇÏ´Â °ÍµéÀÌ ¹«Á¶°Ç »ó¼ö ÀÌ¿©¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. ¸¸¾à '°ª' ºÎºÐ¿¡ º¯¼öµéÀÌ ¿À°ÔµÈ´Ù¸é ¿À·ù°¡ ¹ß»ýÇÏ°Ô µÇ´Âµ¥ ±× ÀÌÀ¯´Â switch ¹®ÀÇ ³»ºÎÀûÀΠó¸® ¹æ¹ý ¶§¹®ÀÔ´Ï´Ù. (¾Æ·¡ÂÊ ¼³¸í µÇ¾î ÀÖ½À´Ï´Ù.)
¸¶Áö¸·À¸·Î switch ¹®ÀÇ default ´Â if ¹®ÀÇ else ¿Í °°Àº ¿ªÇÒÀ» ÇÕ´Ï´Ù. À̵µ Àúµµ ¾Æ´Ñ °ÍµéÀÌ ¿À´Â case ÀÌÁÒ. Áï À§ ¿¹Á¦ÀÇ °æ¿ì input ÀÌ 1 µµ 2 µµ 3 µµ ¾Æ´Ò ¶§ µµ´ÞÇÏ´Â °æ¿ì°¡ µË´Ï´Ù.
±×·±µ¥ À§ switch ¹®¿¡¼ µîÀåÇÑ break ´Â ¾îµð¼ ¸¹ÀÌ º» °Í °°Áö ¾Ê½À´Ï±î? ¸¸¾à ±×·± »ý°¢ÀÌ µé¾ú´Ù¸é ´ç½ÅÀº C ¾ð¾î °øºÎ¸¦ ¾ÆÁÖ Ãæ½ÇÈ÷ ÇÏ°í ÀÖ´Ù°í »ý°¢ µË´Ï´Ù. (¸¸¾à Àß ¸ð¸£°Ú´Ù¸é ¿©±â¸¦ Ŭ¸¯Çϼ¼¿ä) break; ¹®À» ½ÇÇàÇÏ¸é ¾Æ·¡ÀÇ ¸ðµç case µéÀ» ¹«½ÃÇÏ°í switch ¹ÛÀ¸·Î ºüÁ®³ª°¡±â ¶§¹®¿¡ ¹äÀ» ÁÖ¾ú´Âµ¥ °¾ÆÁö°¡ '¾ÆÀÌ ¸ÀÀÖ¾î' ¶ó°í ÇÒ ÀÏÀº ¾ø°Ô µË´Ï´Ù.
ÇÏÁö¸¸ ¸¸¾à ¿©·¯ºÐÀÌ break; ¹®À» ºü¶ß¸®°Ô µÇ¸é À§¿Í °°Àº »óȲÀÌ ¹ú¾îÁú ¼ö ÀÖ½À´Ï´Ù.
/* ½ÇÆÐÀÛ */
#include <stdio.h>
int main()
{
int input;
printf("¸¶ÀÌÆê ¾÷±×·¹À̵å\n");
printf("¹«¾ùÀ» ÇÏ½Ç °ÍÀÎÁö ÀÔ·ÂÇϼ¼¿ä \n");
printf("1. ¹äÁÖ±â \n");
printf("2. ¾Ä±â±â \n");
printf("3. Àç¿ì±â \n");
scanf("%d", &input);
switch(input)
{
case 1:
printf("¾ÆÀÌ ¸ÀÀÖ¾î \n");
case 2:
printf("¾ÆÀÌ ½Ã¿øÇØ \n");
case 3:
printf("zzz \n");
default :
printf("¹«½¼ ¸í·ÉÀÎÁö ¸ø ¾Ë¾Æ µè°Ú¾î. ¿Ð¿Ð \n");
}
return 0;
}
¼º°øÀûÀ¸·Î ÄÄÆÄÀÏ ÇÑ´Ù¸é
¿Í °°ÀÌ ¿ôÁö ¾ÊÀ» ¼ö ¾ø´Â »óȲÀÌ ¹ú¾îÁý´Ï´Ù. ¿©·¯ºÐµéÀÌ 1 À» ÀÔ·ÂÇÑ´Ù¸é case 1: ÀÌ ½ÇÇàµÇ¾î ±× ³»¿ëµéÀÌ ¸ðµÎ ½ÇÇàµÇÁö¸¸ break ¹®À¸·Î switch ¹®À» ºüÁ® ³ª°¡Áö ¸øÇؼ ¾Æ·¡ case µé ±îÁö ÁÙÁÙÀÌ ½ÇÇàµÇ¾î À§¿Í °°Àº ²ÃÀ» º¼ ¼ö ÀÖ½À´Ï´Ù.
/* ¿µ¾î ¸»Çϱâ */
#include <stdio.h>
int main()
{
char input;
printf("(¼Ò¹®ÀÚ) ¾ËÆĺª Àбâ\n");
printf("¾ËÆĺª : ");
scanf("%c", &input);
switch(input)
{
case 'a':
printf("¿¡ÀÌ \n");
break;
case 'b':
printf("ºñ \n");
break;
case 'c':
printf("¾¾ \n");
break;
default :
printf("Á˼ÛÇØ¿ä.. ¸Ó¸®°¡ ³ªºü¼ ¸ø Àоî¿ä \n");
break;
}
return 0;
}
¼º°øÀûÀ¸·Î ÄÄÆÄÀÏ ÇÏ¿´´Ù¸é
¿Í °°ÀÌ ³ª¿É´Ï´Ù.
»ç½Ç, ¿©±â¿¡ Àǹ®ÀÌ µå´Â »ç¶÷µéµµ ÀÖ½À´Ï´Ù. '¾Æ±î À§¿¡¼ switch ¹®Àº Á¤¼ö µ¥ÀÌÅ͸¸ ó¸®ÇÑ´Ù°í Çߴµ¥ ¿Ö ¿©±â¼´Â ¹®ÀÚ µ¥ÀÌÅ͵µ 󸮰¡ µÇ´Â °ÍÀΰ¡?' ±×·±µ¥, ¾ÈŸ±õ°Ôµµ ÀÌ·¯ÇÑ Àǹ®ÀÌ 5 ÃÊ À̳»·Î ÇØ°áµÇÁö ¾ÊÀ¸¸é ¾Æ¸¶ ¾Õ¿¡¼ ¹è¿î ³»¿ëÀ» ±î¸ÔÀ¸¼ÌÀ» °ÍÀÔ´Ï´Ù. (±× ³»¿ëÀ» º¸·Á¸é ¿©±â¸¦ Ŭ¸¯Çϼ¼¿ä) ¿Ö³ÄÇϸé ÄÄÇ»ÅÍ´Â ¹®ÀÚ¿Í ¼ýÀÚ¸¦ ±¸ºÐ ¸øÇÕ´Ï´Ù. ÄÄÇ»ÅÍ´Â ¹®ÀÚ¸¦ ¸ðµÎ ¼ýÀڷΠó¸®ÇÑ µÚ, ¿ì¸®¿¡°Ô º¸¿©ÁÙ ¶§ ¿¡¸¸ ¹®ÀÚ·Î º¸¿©ÁÖ´Â °ÍÀÌÁö¿ä. µû¶ó¼, ¹®ÀÚ = Á¤¼ö ¶ó°í »ý°¢Çصµ °ÅÀÇ ¹«¹æÇÕ´Ï´Ù.
ÀÌÂë switch ¹®À» ¹è¿ì°í ³ª¸é µå´Â Àǹ®ÀÌ Çϳª ÀÖ½À´Ï´Ù.
"Á¤¸»·Î switch ¹®ÀÌ ¿ì¸®¿¡°Ô ÇÊ¿äÇÑ°¡? if - else ·Î ´Ù ÇØ°áµÇ´Âµ¥ ¿Ö ±ÍÂú°Ô switch ¹®À» ¸¸µé¾úÀ»±î? Â÷ÀÌ´Â ´ÜÁö °ÑÀ¸·Î ¾ó¸¶³ª ±ò²ûÇÑÁö°¡ ´Ù¸¦ »ÓÀε¥... ³»ºÎÀûÀ¸·Î switch ¹®°ú if-else ¿Í´Â Â÷ÀÌ°¡ ¾ø³ª¿ä?"
Á¤¸»·Î, ÈǸ¢ÇÑ »ý°¢À̶ó°í »ý°¢ÇÕ´Ï´Ù. À§ Áú¹®¿¡ ´ëÇÑ ´äº¯À» Á¤È®ÇÏ°Ô ÀÌÇØÇÏ·Á¸é ¾î¼Àºí¸®¾î¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿ä·Î ÇÕ´Ï´Ù.
(Âü°í·Î if ¹®°ú switch ¹®ÀÇ Â÷ÀÌ¿¡ ´ëÇÑ ¼³¸íÀ» ÀÚ¼¼ÇÏ°Ô Àß ´Ù·ç´Â °÷ : http://blog.naver.com/kki2406?Redirect=Log&logNo=80041410085 )
À§¿¡ ¸µÅ© °ÉÀº »çÀÌÆ®¿¡ µé¾î°¡ ³»¿ëÀ» ¸ðÁ¶¸® ÀÌÇØÇÑ´Ù¸é ´õÇÒ ³ªÀ§ ¾øÀÌ ÁÁ°ÚÀ¸³ª ¾Æ¸¶ C ¾ð¾î¸¦ óÀ½ ¹è¿ì´Â »ç¶÷µéÀÇ °æ¿ì °ÅÀÇ ÀÌÇظ¦ ¸øÇÒ °ÍÀÌ´Ï Á¦°¡ °£´ÜÇÏ°Ô ¼³¸í µå¸®°Ú½À´Ï´Ù. (¸¸¾à ¾Æ·¡ÀÇ ³»¿ëÀ» ÀÌÇØÇÏÁö ¸øÇÏ´õ¶ó°í ±×³É ³Ñ¾î°¡¼¼¿ä. »ç½Ç ¾î¼Àºí¸®¾î¸¦ ¹è¿ìÁö ¾ÊÀº ÀÌ»ó ÀÌÇØÇϱâ Èûµì´Ï´Ù)
switch ¹® ÀÌ¿ë
if ¹®
À§ µÎ ±×¸²Àº °°Àº ¼Ò½º Äڵ带 switch ¹®°ú if ¹®À» ÀÌ¿ëÇÏ¿© ³ªÅ¸³ °ÍÀÔ´Ï´Ù. »ç½Ç, ¿ÜÇüÀûÀ¸·Î µ¿ÀÛÇÏ´Â °ÍÀº Â÷ÀÌ°¡ ¾ø½À´Ï´Ù. ´ÜÁö ³»ºÎÀûÀ¸·Î ¾î¶»°Ô 󸮵dzİ¡ ´Ù¸¦ »ÓÀÌÁö¿ä.
ÀÏ´Ü if ¹®ÀÇ °æ¿ì °¢ °æ¿ì ¸¶´Ù °ªµéÀ» ºñ±³ ÇÕ´Ï´Ù. À§ °æ¿ì °ªÀ» 3 ¹ø ºñ±³Çϰڳ׿ä. ¿Ö³ÄÇϸé if °¡ 1 ¹ø, else if °¡ 2 ¹øÀÌ°í else ÀÇ °æ¿ì °ªÀÇ ºñ±³ ¾øÀÌ ÀÚµ¿À¸·Î 󸮵Ǵ °ÍÀ̹ǷΠÃÑ 3 ¹ø ºñ±³ÇÏ°Ô µË´Ï´Ù. Áï, if ¹®À» ÀÌ¿ëÇÏ¸é °¢ case ÀÇ °æ¿ì ºñ±³ÇÏ°Ô µÇ¹Ç·Î ÃÖ¾ÇÀÇ °æ¿ì ¸ðµç case ¿¡ ´ëÇØ °ªÀ» ºñ±³ÇÏ´Â ¿¬»ê (¾î¼Àºí¸®¾î¿¡¼´Â CMP ¿¬»êÀ» ÇÕ´Ï´Ù.) À» ½ÃÇàÇÏ°Ô µË´Ï´Ù.
±×·±µ¥ switch ¹®Àº »ç¹µ ´Ù¸¨´Ï´Ù. switch ÀÇ °æ¿ì ³»ºÎÀûÀ¸·Î jump table À̶ó´Â °ÍÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ ¶§, jump table ÀÇ Å©±â´Â case ÀÇ °ªµé¿¡ µû¶ó ´Þ¶óÁö´Âµ¥, ¿¹¸¦ µé¾î¼ ¾î¶² switch ¹®ÀÇ °æ¿ì case 1: ~ case 10: ±îÁö ÀÖ¾ú´Ù°í ÇսôÙ. ±×·¸´Ù¸é jump table ¿¡´Â °ªµéÀÌ 0 ºÎÅÍ 9 ±îÁö µé¾î°¡°Ô µË´Ï´Ù. ¿©±â¼ ¿ì¸®´Â ¿Ö case °ª: ÇÒ ¶§, '°ª' ºÎºÐ¿¡ º¯¼ö°¡ À§Ä¡ÇÏ¸é ¾ÈµÇ´ÂÁö ¾Ë°Ô µË´Ï´Ù. jump table Àº ÇÁ·Î±×·¥ Ãʱ⿡ ÀÛ¼º µÇ±â ¶§¹®¿¡ ÀÌ¹Ì switch ¹®ÀÌ ½ÇÇàµÇ±â Àü¿¡ jump table ÀÌ ÀÛ¼ºµÇ°Ô µË´Ï´Ù. µû¶ó¼, '°ª' ºÎºÐ¿¡ º¯¼ö°¡ µé¾î°¡°Ô µÇ¸é jump table ¿¡ ¹«¾ùÀÌ ¿ÃÁö ¾Ë ¼ö ¾øÀ¸¹Ç·Î º¯¼ö¸¦ »ç¿ëÇÏ¸é ¾ÈµÇ´Â °ÍÀÔ´Ï´Ù.
ÀÌ °ªµéÀº ¹«¾ùÀ» ÀǹÌÇÏ³Ä¸é °¢ case º°·Î ¸í·ÉµéÀÌ À§Ä¡ÇÑ °÷ÀÇ ÁÖ¼Ò¸¦ °¡¸®Å°´Âµ¥ ¿¹¸¦ µé¾î¼ 1 ÀÎ ÁöÁ¡À¸·Î Á¡ÇÁÇÏ°Ô µÇ¸é "¾ÆÀÌ ½Ã¿øÇØ" °¡ ³ª¿À°í 0 ÀÎ ÁöÁ¡À¸·Î Á¡ÇÁÇÏ°Ô µÇ¸é "¾ÆÀÌ ¸ÀÀÖ¾î" ¶ó°í Ãâ·ÂÇ϶ó´Â ³»¿ëÀÇ ¸í·É¹®µéÀÌ ³ª¿É´Ï´Ù. ÀÌÁ¦, º¯¼öÀÇ °ª¿¡ µû¶ó º¯¼ö°¡ 3 À̶ó¸é jump table ÀÇ 3 ¹ø° ¿ø¼Ò¸¦ ã¾Æ¼ ±× °ª¿¡ ÇØ´çÇÏ´Â °÷À¸·Î Á¡ÇÁÇÏ°Ô µË´Ï´Ù.
(½ÇÁ¦·Î switch ¹®ÀÌ Ã³¸®µÇ´Â °úÁ¤Àº À̺¸´Ù ¾à°£ ´õ º¹ÀâÇÏÁö¸¸ ¾î¼Àºí¸®¾î¸¦ ¹è¿ìÁö ¾ÊÀº ÇöÀç »óȲÀ¸·Î½á´Â ÃÖ¼±À̶ó »ý°¢µË´Ï´Ù)
µû¶ó¼, switch ¹®À» ÀÌ¿ëÇϸé case ¿¡ µû¶ó CMP ¿¬»êÀÌ ´Ã¾î³ª´Â °ÍÀÌ ¾Æ´Ï¶ó jump table ÀÇ Å©±â¸¸ Ä¿Áú »Ó ¼º´É¿¡ À־ ÀüÇô ¿µÇâÀ» ¹ÞÁö ¾Ê°Ô µË´Ï´Ù.
°á·ÐÀûÀ¸·Î À̾߱â ÇÏÀÚ¸é switch ¹®ÀÌ È¿°úÀûÀ¸·Î 󸮵DZâ À§Çؼ´Â case ÀÇ '°ª' µéÀÇ Å©±â°¡ ±×´ÙÁö Å©Áö ¾Ê¾Æ¾ß ÇÏ°í, '°ª' µéÀÌ ¼øÂ÷ÀûÀ¸·Î Á¤·ÄµÇ¾î ÀÖ°í, ±× '°ª' ³¢¸®ÀÇ Â÷ÀÌ°¡ Å©Áö ¾Ê´Ù¸é ÃÖ°í·Î È¿À²ÀûÀÎ switch ¹®À» ÀÌ¿ëÇÒ ¼ö ÀÖ°Ô µË´Ï´Ù |
Hit : 8578 Date : 2013/06/15 01:47
|