3-6.¿­°ÅÇü

3-6-°¡.Á¤ÀÇ

¿­°ÅÇü(Enumeration)À̶õ º¯¼ö°¡ °¡Áú ¼ö ÀÖ´Â °¡´ÉÇÑ °ªµéÀ» ³ª¿­ÇØ ³õÀº ŸÀÔÀÌ´Ù. ¾î¶² º¯¼ö°¡ °¡Áú ¼ö ÀÖ´Â °ªÀÇ Á¾·ù°¡ ÀÏÁ¤ÇÑ ¹üÀ§·Î Á¤ÇØÁ® ÀÖ´Ù¸é Á¤¼öÇü ´ë½Å ¿­°ÅÇüÀ» ¾²´Â °ÍÀÌ ´õ Æí¸®ÇÏ´Ù. ¿­°ÅÇü º¯¼ö¸¦ ¼±¾ðÇÒ ¶§´Â enum Å°¿öµå¸¦ »ç¿ëÇÑ´Ù.

 

enum { ¸â¹ö, ¸â¹ö, ... } º¯¼ö;

 

¿­°ÅÇüÀ¸·Î °¡´ÉÇÑ °ªµéÀ» ¿­°Å ¸â¹ö¶ó°í Çϴµ¥ { } °ýÈ£¾È¿¡ °ªÀÇ À̸§À» ³ª¿­ÇÏ¸é µÈ´Ù. ±¸Ã¼ÀûÀÎ ¿¹¸¦ µé¾î º¸ÀÚ.

 

enum { EAST, WEST, SOUTH, NORTH } mark;

 

mark¶ó´Â º¯¼ö´Â ¹æÇâ°ªÀ» ±â¾ïÇϴµ¥ °¡´ÉÇÑ °ªÀº µ¿¼­³²ºÏ ³Ý Áß ÇϳªÀÌ´Ù. mark¿¡ °ªÀ» ´ëÀÔÇϰųª ºñ±³ÇÒ ¶§´Â ¿­°Å ¸â¹ö¸¦ »ç¿ëÇÑ´Ù.

 

mark=EAST;           // mark¿¡ EAST¸¦ ´ëÀÔ

if (mark==WEST)          // mark°¡ WESTÀ̸é

 

¿­°ÅÇüÀº ³»ºÎÀûÀ¸·Î Á¤¼ö·Î ó¸®µÇ¸ç °¢ ¿­°Å ¸â¹ö´Â 0ºÎÅÍ 1¾¿ Áõ°¡ÇÏ´Â Á¤¼ö°ªÀ» °¡Áø´Ù. À§ ¿¹¿¡¼­ EAST´Â 0ÀÌ°í WEST´Â 1ÀÌ°í SOUTH, NORTH´Â °¢°¢ 2¿Í 3ÀÌ´Ù. ÄÄÆÄÀÏ·¯´Â ¿­°ÅÇüÀÇ ¸â¹öµéÀÌ ¾î¶² Á¤¼ö°ªÀ» °¡Áö´ÂÁö ±â¾ïÇØ µÎ¾ú´Ù°¡ ¿­°Å ¸â¹ö¸¦ ¸¸³ª¸é ½ÇÁ¦°ªÀ» Àû¿ëÇÑ´Ù. ¿­°ÅÇüÀº Á¤¼ö¸¦ Á÷Á¢ »ç¿ëÇÏ´Â ¹æ½Ä¿¡ ºñÇØ ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù.

 

¨ç ±â¾ïÀÌ ¿ëÀÌÇÏ´Ù. ¿­°ÅÇü ´ë½Å Á¤¼öÇü º¯¼ö¸¦ ´ë½Å »ç¿ëÇÒ ¼öµµ ÀÖÀ¸³ª ÀÌ·¸°Ô µÇ¸é °¢ Á¤¼öÀÇ Àǹ̰¡ ¹«¾ùÀÎÁö »ç¶÷ÀÌ ÀÏÀÏÀÌ ±â¾ïÇØ¾ß ÇÏ´Â ºÒÆíÇÔÀÌ ÀÖ´Ù. °ªÀÌ 10°³ Á¤µµ µÈ´Ù¸é ¹«Ã´ È¥¶õ½º·¯¿ï °ÍÀÌ´Ù. ºÎ¼­¸¦ ±â¾ïÇÏ´Â º¯¼ö part°¡ ÀÖ´Ù°í ÇÏÀÚ. ÀÌ º¯¼ö¸¦ Á¤¼öÇüÀ¸·Î ¼±¾ðÇÑ´Ù¸é °¢ ºÎ¼­¿¡ ´ëÇØ 0Àº Ãѹ«ºÎ, 1Àº ¿µ¾÷ºÎ, 2´Â ÀλçºÎ, 3Àº °æ¸®ºÎ, .... 10Àº °ü¸®ºÎ µîÀ¸·Î Àǹ̸¦ Á¤ÇÏ°í ¿Ü¿ö¾ß ÇÏÁö¸¸ ¿­°ÅÇüÀ» »ç¿ëÇÏ¸é ±×·² ÇÊ¿ä°¡ ¾ø´Ù. »ç¶÷Àº ¼ýÀÚº¸´Ù ¹®ÀÚ¸¦ ´õ Àß ±â¾ïÇÑ´Ù. 10°³ Á¤µµ°¡ ¾Æ´Ï¶óµµ LEFT, RIGHT µÎ °³¸¸ À־ »ç¶÷Àº ¹«Ã´ È¥¶õ½º·¯¿öÇÑ´Ù.

¨è ¼Ò½ºÀÇ °¡µ¶¼º(Readability)ÀÌ ³ô¾ÆÁø´Ù. Áï, Àб⸸ ÇÏ¸é ¾î¶² Àǵµ·Î ÀÛ¼ºµÈ ¼Ò½ºÀÎÁö ½±°Ô ÆľÇÇÒ ¼ö ÀÖ´Ù. mark=3À̶ó°í µÇ¾î ÀÖÀ¸¸é 3ÀÌ ¹«½¼ ¶æÀÎÁö ¹Ù·Î ¾Ë±â ¾î·ÆÁö¸¸ mark=NORTH¶ó°í µÇ¾î ÀÖÀ¸¸é ºÏÂÊÀ» ´ëÀÔÇß´Ù´Â °ÍÀ» ºÐ¸íÈ÷ ¾Ë ¼ö ÀÖ´Ù. ÆÀ ÀÛ¾÷À» ÇÒ ¶§´Â ÀÌ·± °¡µ¶¼ºÀÌ ¾ÆÁÖ Áß¿äÇÏ´Ù.

¨é ¿­°ÅÇüÀº Á¤¼öÇüº¸´Ù ¾ÈÀüÇÏ´Ù. mark¿¡ ´ëÀ﵃ ¼ö ÀÖ´Â °ªÀº 4°¡ÁöÁß Çϳª·Î Á¦ÇÑµÇ¸ç µ¿¼­³²ºÏÁß Çϳª¸¸ ´ëÀ﵃ ¼ö ÀÖ´Ù. mark¸¦ Á¤¼öÇüÀ¸·Î ¼±¾ðÇÑ´Ù¸é ÀÌ º¯¼ö¿¡ 5¸¦ ´ëÀÔÇÒ ¼öµµ ÀÖÁö¸¸ ¿­°ÅÇüÀº °¡´ÉÇÑ °ª Áß Çϳª¸¸ ´ëÀÔÇÒ ¼ö Àֱ⠶§¹®¿¡ ÀÌ·± ¾î󱸴Ͼø´Â ½Ç¼ö¸¦ ÄÄÆÄÀÏ·¯°¡ Çã¶ôÇÏÁö ¾Ê´Â´Ù.

 

¿­°Å ¸â¹ö´Â º°µµÀÇ ÁöÁ¤ÀÌ ¾øÀ¸¸é 0ºÎÅÍ ½ÃÀÛÇÏ´Â Á¤¼ö°ªÀ¸·Î Á¤ÀǵǸç À̾îÁö´Â ¸â¹ö´Â ¾Õ ¸â¹öÀÇ °ª+1ÀÌ µÈ´Ù. ¸¸¾à ¿­°Å ¸â¹öÀÇ °ªÀ» ƯÁ¤ÇÑ °ªÀ¸·Î ºÐ¸íÈ÷ ÁöÁ¤ÇÏ°í ½Í´Ù¸é =´ÙÀ½¿¡ ¿øÇÏ´Â °ªÀ» Á÷Á¢ Àû¾îÁØ´Ù.

 

enum { EAST=5, WEST=10, SOUTH, NORTH} mark;

 

ÀÌ·¸°Ô Çϸé EAST´Â 5ÀÇ °ªÀ» °¡Áö¸é WEST´Â 10ÀÇ °ªÀ» °¡Áø´Ù. SOUTH, NORTH´Â º°µµÀÇ °ª ÁöÁ¤ÀÌ ¾øÀ¸¹Ç·Î WEST´ÙÀ½ÀÇ Á¤¼öÀÎ 11, 12ÀÇ °ªÀ» °¡Áø´Ù. ´ÙÀ½ ¿­°ÅÇüÀº ¿äÀÏ Å¸ÀÔÀ» Á¤ÀÇÇÑ´Ù. ¿äÀÏÀÇ °¡´ÉÇÑ °ªÀº ¿ù¿äÀÏ~ÀÏ¿äÀϱîÁö ÀÏ°ö°¡Áö¹Û¿¡ ¾øÀ¸¹Ç·Î ¿­°ÅÇüÀ¸·Î ¼±¾ðÇϱ⿡ Àû´çÇÏ´Ù.

 

enum { mon, tue, wed, thr, fri, sat, sun } day;

 

ÀÌ·¸°Ô ¼±¾ðÇϸé monÀÌ 0ÀÌ µÇ°í tueºÎÅÍ Â÷·Ê´ë·Î 1~6±îÁöÀÇ °ªÀ» °¡Áú °ÍÀÌ´Ù. C´Â Ç×»ó 0ºÎÅÍ ¼ö¸¦ ¼¼Áö¸¸ »ç¶÷Àº 1ºÎÅÍ ¼¼´Â °Í¿¡ ´õ Àͼ÷Çϱ⠶§¹®¿¡ ù ¹ø° ¸â¹öÀÇ °ªÀ» 1·Î ¹Ù²Ù´Â °ÍÀÌ ´õ ÇÕ¸®ÀûÀÎ °æ¿ì°¡ ¸¹´Ù. ÀÌ·² ¶§ enum {mon=1, ... À¸·Î ¼±¾ðÇÏ¸é ¿ù¿äÀϺÎÅÍ ÀÏ¿äÀϱîÁö 1~7ÀÇ °ªÀ» °¡Áö°Ô µÈ´Ù.

¿­°Å ¸â¹ö´Â ÀÏÁ¾ÀÇ ¸íĪÀ̹ǷΠ´Ù¸¥ º¯¼ö¸í°ú Áߺ¹µÇ¾î¼­´Â ¾ÈµÇ¸ç À¯ÀÏÇÑ À̸§À» °¡Á®¾ß ÇÑ´Ù. ÇÑ ¿­°ÅÇü³»¿¡¼­ ¿­°Å ¸â¹ö³¢¸® Áߺ¹µÇ´Â °Íµµ ¹°·Ð Çã¿ëµÇÁö ¾Ê´Â´Ù. µû¶ó¼­ ´ÙÀ½°ú °°ÀÌ ¿­°ÅÇüÀ» ¼±¾ðÇÏ´Â °ÍÀº À߸øµÈ °ÍÀÌ´Ù.

 

enum { man, woman, man } human;

 

manÀ̶ó´Â ¸â¹ö°¡ µÎ ¹ø Áߺ¹µÇ¾î Àִµ¥ ÀÌ·¸°Ô µÇ¸é human=manÀ̶ó´Â ´ëÀÔ¹®ÀÌ 0À» ´ëÀÔÇ϶ó´Â °ÍÀÎÁö 2¸¦ ´ëÀÔÇ϶ó´Â °ÍÀÎÁö ¾Ö¸ÅÇØÁö°Ô µÈ´Ù. ¾ð¾î´Â ¾Ö¸ÅÇؼ­´Â ¾ÈµÇ¹Ç·Î ÀÌ·± ½ÄÀÇ ¿­°ÅÇü ¼±¾ðÀº Çã¿ëµÇÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ ¿­°Å ¸â¹öÀÇ °ªÀº Áߺ¹µÇ¾îµµ »ó°ü¾ø´Ù.

 

enum { man=1, woman=2, girl=2 } human;

 

woman°ú girlÀÌ ¶È°°Àº °ªÀ» °¡Áö°í ÀÖÁö¸¸ ¾Ö¸ÅÇÏÁö´Â ¾ÊÀ¸¹Ç·Î ÀÌ°ÍÀÌ ¹®Á¦°¡ µÇÁö´Â ¾Ê´Â´Ù. ÀÌ °æ¿ì woman°ú girlÀº ÀÏÁ¾ÀÇ µ¿ÀǾî·Î 󸮵Ǹç human=woman ´ëÀÔ¹®°ú human=girl ´ëÀÔ¹®Àº µÑ ´Ù ¶È°°ÀÌ human¿¡ 2¸¦ ´ëÀÔÇÏ°Ô µÈ´Ù. ¿­°Å ¸â¹ö´Â ³»ºÎÀûÀ¸·Î Á¤¼öÇüÀ¸·Î 󸮵ǹǷΠÀ½¼ö¸¦ »ç¿ëÇÏ´Â °Íµµ ¹°·Ð °¡´ÉÇÏ´Ù.