4-4.switch ¹®

4-4-°¡.´ÙÁß ¼±ÅÃ

´ÙÁß ¼±Åù®À̶õ ÇϳªÀÇ º¯¼ö°ªÀ» Æò°¡ÇÏ¿© °¢ °ª¿¡ ´ëÇØ °³º°ÀûÀΠ󸮸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹®ÀåÀÌ´Ù. ¿¹¸¦ µé¾î »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¼ýÀÚ°¡ 1ÀÏ ¶§´Â ÀÌ·¸°Ô Çϰí, 2ÀÏ ¶§´Â Àú·¸°Ô Çϰí, 3ÀÏ ¶§´Â ¿ä·¸°Ô ÇÏ°í °¢°¢ÀÇ °ª¿¡ ´ëÇÑ Ã³¸®¸¦ ´Ù¸£°Ô ÁöÁ¤ÇϰíÀÚ ÇÒ ¶§ ´ÙÁß ¼±Åù®À» »ç¿ëÇÑ´Ù. Ű¿öµå switch¸¦ »ç¿ëÇÏ¸ç ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù.

 

switch (º¯¼ö) {

case °ª1:¸í·É1;break;

case °ª2:¸í·É2;break;

....

case °ªn:¸í·Én;break;

default:¸í·É;break.

}

 

switch¹® ´ÙÀ½ÀÇ °ýÈ£¾È¿¡ Æò°¡ÇÒ º¯¼ö¸¦ Àû°í case¹®¿¡ ÀÌ º¯¼ö°¡ °¡Áú ¼ö ÀÖ´Â °ª°ú ÀÌ °ª¿¡ ´ëÇÑ Ã³¸® Äڵ带 ÀÛ¼ºÇÑ´Ù. case¸¦ ³¡³¾ ¶§´Â break¹®À¸·Î switch ºí·ÏÀ» °­Á¦·Î Å»ÃâÇØ¾ß ÇÑ´Ù. case´Â ¿øÇϴ¸¸Å­ ¾ó¸¶µçÁö ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. default´Â caseÀÇ Æ¯º°ÇÑ °æ¿ì·Î º¯¼ö°¡ ¾ÕÂÊ case¿¡ ÀÖ´Â °ª ÀÌ¿ÜÀÇ °ªÀ» °¡Áú ¶§ÀÇ Ã³¸®¸¦ ÁöÁ¤ÇÑ´Ù.

±âº» Çü½ÄÀÌ º¹ÀâÇØ º¸ÀÌÁö¸¸ ±¸Ã¼ÀûÀÎ ¿¹¸¦ µé¾î º¸¸é ½±°Ô ÀÌÇØ°¡ °¥ °ÍÀÌ´Ù. ´ÙÀ½ ¿¹Á¦´Â »ç¿ëÀڷκÎÅÍ ÀԷ¹ÞÀº Á¤¼ö°ªÀÌ ¾ó¸¶Àΰ¡¸¦ ¹®ÀåÀ¸·Î Ãâ·ÂÇÑ´Ù.

 

¿¹ Á¦ : switch

#include <Turboc.h>

 

void main()

{

     int i;

 

     printf("°ªÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä : ");

     scanf("%d",&i);

 

     switch (i) {

     case 0:

          printf("ÀÔ·ÂÇÑ °ªÀº 0ÀÔ´Ï´Ù.\n");

          break;

     case 1:

          printf("1À» ÀÔ·ÂÇß½À´Ï´Ù.\n");

          break;

     case 2:

          printf("2ÀÔ´Ï´Ù.\n");

          break;

     default:

          printf("0,1,2°¡ ¾Æ´Ñ ´Ù¸¥ ¼öÀÔ´Ï´Ù.\n");

          break;

     }

}

 

i¿¡ °ªÀ» ÀÔ·Â¹Þ¾Æ switch¹®À¸·Î i°ª¿¡ ´ëÇØ ´ÙÁß ºÐ±âÇÑ´Ù. case 0´Â i°¡ 0ÀÏ ¶§ÀÇ µ¿ÀÛÀ» ÁöÁ¤Çϴµ¥ "ÀÔ·ÂÇÑ °ªÀº 0ÀÔ´Ï´Ù."¶ó´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇÏ¿´´Ù. case1, case 2´Â i°¡ 1À̰ųª 2ÀÏ ¶§ÀÇ µ¿ÀÛÀ» ÁöÁ¤Çϴµ¥ °¢°¢ ´Ù¸¥ Á¾·ùÀÇ ¸Þ½ÃÁö¸¦ Ãâ·ÂÇß´Ù. default´Â À§ÂÊ case¿¡¼­ ÁöÁ¤ÇÑ 0, 1, 2Áß ¾î¶² °Íµµ ¾Æ´Ò ¶§ÀÇ µ¿ÀÛÀ» ÁöÁ¤ÇÑ´Ù. ¼ø¼­µµ´Â ´ÙÀ½°ú °°´Ù.

switch¹®Àº º¯¼ö°ªÀ» °¡´ÉÇÑ °ª°ú ¸ðµÎ ºñ±³ÇØ º¸°í ±× Áß º¯¼ö°ª°ú ¸Â´Â case¸¦ ¼±ÅÃÇÏ¿© ½ÇÇàÇÑ´Ù. º¯¼ö¿¡ ´ëÇÑ ÀÏÁ¾ÀÇ Á¶°Ç ÆÇ´Ü¹®À̹ǷΠif else if¹®À¸·Îµµ ¶È°°Àº ¿¹Á¦¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½Àº switch¸¦ ¾²Áö ¾Ê°í ´Ù½Ã ÀÛ¼ºÇØ º» °ÍÀÌ´Ù.

 

¿¹ Á¦ : switch2

#include <Turboc.h>

 

void main()

{

     int i;

 

     printf("°ªÀ» ÀÔ·ÂÇØ ÁÖ¼¼¿ä : ");

     scanf("%d",&i);

 

     if (i == 0) {

          printf("ÀÔ·ÂÇÑ °ªÀº 0ÀÔ´Ï´Ù.\n");

     } else if (i == 1) {

          printf("1À» ÀÔ·ÂÇß½À´Ï´Ù.\n");

     } else if (i == 2) {

          printf("2ÀÔ´Ï´Ù.\n");

     } else {

          printf("0,1,2°¡ ¾Æ´Ñ ´Ù¸¥ ¼öÀÔ´Ï´Ù.\n");

     }

}

 

if¹®À¸·Î i¸¦ °¡´ÉÇÑ °¢°¢ÀÇ °ª°ú ºñ±³ÇØ º¸°í ´ëÀÀµÇ´Â ¸Þ½ÃÁö¸¦ Ãâ·ÂÇß´Ù. °á°ú´Â µ¿ÀÏÇÏÁö¸¸ °¡´ÉÇÑ °ªÀÇ Á¾·ù°¡ ¾ÆÁÖ ¸¹´Ù¸é ÀÏÀÏÀÌ if¹®À¸·Î ºñ±³ÇϱⰡ ¾ÆÁÖ ±ÍÂú°í ¼Ò½º°¡ ÁöÀúºÐÇØÁø´Ù. switch¹®Àº º¯¼ö°¡ °¡Áú ¼ö ÀÖ´Â °¡´ÉÇÑ °ªÀ» case·Î ±ò²ûÇÏ°Ô ¼±ÅÃÇϹǷΠ¼Ò½º¸¦ ÀбⰡ ÈξÀ ´õ ÆíÇϰí case¸¦ Ãß°¡ÇÏ´Â °Íµµ ´õ ½±´Ù. ´ÙÀ½Àº switch¹®ÀÇ ÀϹÝÀûÀÎ ÁÖÀÇ »çÇ×ÀÌ´Ù.

 

¨ç switch¹®À¸·Î Æò°¡ÇÒ ¼ö ÀÖ´Â º¯¼ö´Â ÁÖ·Î Á¤¼öÇüÀÌ´Ù. int, unsigned, short°°Àº Á¤¼öÇü º¯¼ö¿¡ ´ëÇØ¼­¸¸ switch¹®À» ¾µ ¼ö ÀÖÀ¸¸ç ½Ç¼ö³ª »ç¿ëÀÚ Á¤ÀÇÇü µîÀº ´ÙÁß ¼±Åÿ¡ »ç¿ëÇÒ ¼ö ¾ø´Ù. ¹®ÀÚÇü, ¿­°ÅÇü µîÀº Á¤¼öÇü°ú ȣȯµÇ¹Ç·Î switch¹®¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

¨è case ´ÙÀ½¿¡´Â ¹Ýµå½Ã Á¤¼ö »ó¼ö Çϳª°¡ ¿Í¾ß ÇÑ´Ù. º¯¼ö´Â ¿Ã ¼ö ¾øÀ¸¸ç ¹üÀ§¸¦ ÁöÁ¤ÇÒ ¼öµµ ¾ø´Ù. ¸¸¾à º¯¼ö°ª³¢¸® ºñ±³Çϰųª ÀÏÁ¤ÇÑ ¹üÀ§¿¡ ÀÖ´ÂÁö¸¦ º¸·Á¸é switch¹® ´ë½Å if¹®À» »ç¿ëÇØ¾ß ÇÑ´Ù.

¨é case¹®Àº Á¡ÇÁ À§Ä¡¸¦ ÁöÁ¤ÇÏ´Â ÀÏÁ¾ÀÇ ·¹À̺íÀ̱⠶§¹®¿¡ ¼ø¼­¿¡ ´ëÇÑ Á¦¾àÀº ¾ø´Ù. case 0, case 1, case 2 ¼øÀ¸·Î ¹Ýµå½Ã Á¤·ÄÇÒ ÇÊ¿ä´Â ¾ø°í ¿øÇÏ´Â ¼ø¼­´ë·Î ÀÛ¼ºÇصµ »ó°ü¾ø´Ù. default¹®µµ ¹Ýµå½Ã switchÀÇ ³¡¿¡¸¸ ¿Ã ¼ö ÀÖ´Â °ÍÀº ¾Æ´Ï³ª Á¦ÀÏ ¸¶Áö¸·¿¡ µÎ´Â °ÍÀÌ º¸±â¿¡ ÁÁ°í ³í¸®ÀûÀ¸·Î ¾ÈÁ¤°¨ÀÌ ÀÖ¾î º¸ÀδÙ.

¨ê default¿¡ ´ëÇÑ Ã³¸®°¡ ÇÊ¿äÄ¡ ¾ÊÀ¸¸é »ý·«ÇÒ ¼ö ÀÖ´Ù. ¸¸¾à ÇØ´çÇÏ´Â case°¡ ¾ø°í defaultµµ ¾øÀ¸¸é switch¹® Àüü°¡ ¹«½ÃµÈ´Ù.

¨ë Á¶°Ç¿¡ ¸Â´Â case¸¦ ¸¸³ª¸é case ¾Æ·¡¿¡ ÀÖ´Â ¸í·ÉµéÀ» ¼ø¼­´ë·Î ½ÇÇàÇÑ´Ù. µû¶ó¼­ case ´ÙÀ½¿¡ { } °ýÈ£¸¦ ½Î ÁÙ Çʿ䰡 ¾ø´Ù. ´ë½Å caseÀÇ ³¡¿¡´Â break¸¦ µÎ¾î switch¹®À» ³¡³»µµ·Ï ÇÑ´Ù. ¸¸¾à break°¡ ¾øÀ¸¸é ´ÙÀ½ caseÀÇ ¸í·É±îÁöµµ °è¼Ó ½ÇÇàÇÑ´Ù. ÀÌ·± Ư¼ºÀ» ÀÌ¿ëÇÏ¸é µÎ °¡Áö °ª¿¡ ´ëÇØ µ¿ÀÏÇÑ Ã³¸®¸¦ ÇÒ ¼ö ÀÖ´Ù.

 

switch (ch) {

case 'a':

case 'A';

     // A¿¡ ´ëÇÑ Ã³¸®

     break;

}

 

ÀÌ·¸°Ô ÀÛ¼ºÇϸé ch°¡ ´ë¹®ÀÚ AÀ̰ųª ¼Ò¹®ÀÚ aÀ̰ųª µ¿ÀÏÇÑ Ã³¸®¸¦ ÇÏ°Ô µÈ´Ù. case 'a'¿¡ break°¡ ¾ø±â ¶§¹®¿¡ case 'A' ´ÙÀ½ÀÇ ¸í·ÉÀÌ °è¼Ó ½ÇÇàµÇ±â ¶§¹®ÀÌ´Ù. switch¹®Àº ¹üÀ§¸¦ Á¡°ËÇÒ ¼ö ¾øÁö¸¸ ¹üÀ§°¡ ¾ÆÁÖ Á¼´Ù¸é ÀÌ·± ½ÄÀ¸·Î break¾øÀÌ case ¸î °³¸¦ ³ª¿­Çؼ­ µ¿ÀÏÇÑ Ã³¸®¸¦ Çϵµ·Ï ÇÒ ¼ö´Â ÀÖ´Ù. switch¹®ÀÇ ÀÌ·± Ư¼ºÀÌ ÀÀ¿ëÇϱ⿡ µû¶ó¼­´Â ´Ù¼Ò Æí¸®ÇÑ ¸éµµ ÀÖÁö¸¸ ½Ç¼ö·Î break¸¦ ´©¶ôÇßÀ» ¶§ ÄÄÆÄÀÏ·¯°¡ À̸¦ ¿¡·¯·Î º¸°íÇÏÁö ¾ÊÀ¸¹Ç·Î ¿øÄ¡¾Ê´Â °á°ú°¡ ¹ß»ýÇÏ´Â °æ¿ìµµ Á¾Á¾ ÀÖ´Ù.

±×·¡¼­ switch¹®À» ¾µ ¶§´Â Ç×»ó break¸¦ Á¦´ë·Î ºÙ¿´´ÂÁö ÁÖÀÇÇØ¾ß ÇÏ¸ç ¸¶Áö¸· ³¡ ºÎºÐÀÇ case¿¡´Â break°¡ ÇÊ¿ä¾ø´Ù ÇÏ´õ¶óµµ ÀÏ´ÜÀº ºÙ¿© ³õ´Â °ÍÀÌ ¾ÈÀüÇÏ´Ù. switch¹®ÀÇ break È¿°ú´Â Á÷°üÀûÀÌÁö ¸øÇÏ°í ½Ç¼öÇÒ °¡´É¼ºÀÌ ³ô¾Æ¼­ ´Ù¸¥ ¾ð¾î »ç¿ëÀÚ°¡ C¸¦ °ø°ÝÇÏ´Â ÇÚµðĸÀÌ µÇ±âµµ ÇÑ´Ù. Ãֽоð¾îÀÎ C#Àº break°¡ ¾ø´Â case¸¦ ¸í¹éÇÑ ¿¡·¯·Î º¸°íÇÏ¿© ÀÌ·± À§ÇèÀ» Á¦°ÅÇß´Ù.