goto¹®Àº ÁöÁ¤ÇÑ °÷À¸·Î ¹«Á¶°Ç Á¡ÇÁÇÏ´Â Á¦¾î¹®ÀÌ´Ù. goto¶ó´Â ¸»ÀÌ ÀǹÌÇϵíÀÌ Á¶°Ç¾øÀÌ ¹«Á¶°Ç Á¦¾î¸¦ ¿Å°Ü ¹ö¸®±â ¶§¹®¿¡ »ç½Ç °¡Àå »ç¿ëÇϱ⠽¬¿î Á¦¾î¹®ÀÌ´Ù. goto·Î Á¦¾î¸¦ ¿Å±æ ÁöÁ¡Àº ·¹À̺í(label)À̶ó´Â °ÍÀ¸·Î Ç¥½ÄÀ» ´Ü´Ù. ºí·ÏÀÇ ³¡¸¸ Á¦¿ÜÇÏ°í ÇÁ·Î±×·¥ÀÇ ¾î´À °÷¿¡³ª ·¹À̺íÀ» ¹èÄ¡ÇØ ³õ°í goto ·¹À̺í¸í; À̶ó´Â ¸í·ÉÀ» ³»¸®¸é ·¹À̺í À§Ä¡·Î Áï½Ã À̵¿ÇÑ´Ù. ·¹ÀÌºíº¸´Ù ¾Õ¿¡¼ µÚ·Î À̵¿ÇÒ ¼öµµ ÀÖ°í µÚ¿¡¼ ¾ÕÀ¸·Î À̵¿ÇÒ ¼öµµ ÀÖµÇ ´Ü ÇÔ¼ö ³»¿¡¼¸¸ À̵¿ÇÒ ¼ö ÀÖÀ¸¸ç ´Ù¸¥ ÇÔ¼ö·Î´Â Á¡ÇÁÇÒ ¼ö ¾ø´Ù.
·¹À̺íÀº ÀÏÁ¾ÀÇ ¸íĪÀ̹ǷΠ¸íĪ ±ÔÄ¢¿¡¸¸ ¸ÂÀ¸¸é ÀÚÀ¯·Ó°Ô ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù. ·¹ÀÌºí ´ÙÀ½¿¡ ÄÝ·Ð(:)À» ºÙ¿© Á¡ÇÁÇÒ À§Ä¡¿¡ »ðÀÔÇØ ³õ±â¸¸ ÇÏ¸é µÈ´Ù. ´ÙÀ½ÀÌ goto¹®ÀÇ »ç¿ë¿¹ÀÌ´Ù.
here:
.....
.....
goto here;
Á¡ÇÁÇϱ⸦ ¿øÇÏ´Â °÷¿¡ here¶ó´Â À̸§À¸·Î ·¹À̺íÀ» ºÙ¿© ³õ°í goto here; ¸í·ÉÀ» ³»¸®¸é Áï½Ã here ´ÙÀ½ÀÇ ¹®ÀåÀ¸·Î À̵¿ÇÑ´Ù. ´Ù¸¥ ¼øȯ¹®°ú´Â ´Þ¸® º¹ÀâÇÑ Çü½ÄÀ» ÇÊ¿ä·Î ÇÏÁö ¾Ê±â ¶§¹®¿¡ óÀ½ºÎÅÍ Á¦¾î ±¸Á¶¸¦ ¼³°èÇÒ ÇÊ¿äµµ ¾ø°í ¾ðÁ¦µçÁö ¾î´À °÷À¸·Î³ª Á¦¾î¸¦ ¿Å±æ ¼ö ÀÖ´Â ¹«Ã´ °£ÆíÇÑ ¸í·ÉÀÌ´Ù.
goto¹®°ú Á¶°Ç¹®À» »ç¿ëÇÏ¸é ¸ðµç Á¾·ùÀÇ ¹Ýº¹¹®À» ´Ù Èä³»³¾ ¼ö ÀÖ´Ù. if¹®À¸·Î ¹Ýº¹À» °è¼ÓÇÒ °ÍÀÎÁö ÆÇ´ÜÇØ º¸°í ·çÇÁ óÀ½À¸·Î Á¡ÇÁÇØ ¹ö¸®¸é µÈ´Ù. 1~100±îÁö Çհ踦 ±¸ÇÏ´Â ¿¹Á¦¸¦ ¹Ýº¹¹®¾øÀÌ ÀÛ¼ºÇØ º¸ÀÚ.
¿¹ Á¦ : gotosum |
#include <Turboc.h>
void main()
{
int i, sum;
i=1;
sum=0;
here:
sum=sum+i;
if (i<100) {
i=i+1;
goto here;
}
printf("1~100±îÁöÀÇ ÇÕ = %d\n",sum);
}
i°¡ 100º¸´Ù ÀÛÀ¸¸é i¸¦ 1Áõ°¡½ÃÅ°°í here·Î Á¡ÇÁÇÑ´Ù. ÀÏÁ¤ÇÑ Á¶°ÇÀÌ ¸¸Á·µÉ ¶§ ¾ÕÂÊÀ¸·Î Á¦¾î¸¦ º¸³¿À¸·Î½á ¹Ýº¹¹®°ú µ¿ÀÏÇÑ È¿°ú¸¦ ³»°í ÀÖ´Â °ÍÀÌ´Ù. ¹°·Ð i°¡ 100º¸´Ù ÀÛÁö ¾ÊÀ¸¸é goto here°¡ ½ÇÇàµÇÁö ¾ÊÀ¸¹Ç·Î ·çÇÁ°¡ Á¾·áµÉ °ÍÀÌ´Ù.
goto¸¦ »ç¿ëÇÑ ÄÚµå´Â ÀÏ´ÜÀº ¾ÆÁÖ Á÷°üÀûÀÌ°í ÀÌÇØÇϱ⵵ ½±´Ù. À§¿¡¼ºÎÅÍ ¾Æ·¡·Î ¼ø¼´ë·Î ½ÇÇàÇÏ´Ù°¡ goto¸¦ ¸¸³ª¸é ÁöÁ¤ÇÑ °÷À¸·Î Á¡ÇÁÇØ ¹ö¸®¸é µÈ´Ù. ±×·¯³ª Äڵ尡 ªÀº °æ¿ì¿¡´Â ÀÌÇØÇϱ⠽±Áö¸¸ ±æ¾îÁö¸é ¿ÀÈ÷·Á ´õ ÀÌÇØÇϱ⠾î·Á¿öÁö°í ¿©·¯ °¡Áö ºÎÀÛ¿ëÀÌ »ý±â±â ¶§¹®¿¡ ¿äÁòÀº °ÅÀÇ »ç¿ëµÇÁö ¾Ê´Â´Ù.
¿ì¼± goto¹®Àº ÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ ¾ûÅ°°Ô ¸¸µç´Ù. ¾Æ¹«°÷¿¡¼³ª Á¦¾î¸¦ ¿Å±æ ¼ö Àֱ⠶§¹®¿¡ ¾²±â´Â ½±Áö¸¸ Äڵ带 À¯ÁöÇϱⰡ ¹«Ã´ ¾î·Æ´Ù. ¿©±â¼ Àú±â·Î Á¦¾î¸¦ ¿Å°Ü¼ µû¶ó °¡ º¸¸é ¶Ç Á¶±â·Î Æú¦ ¶Ù¾î °¡ ¹ö¸®°í ¶Ç Á¶±â¼ ´Ù½Ã ´Ù¸¥ °÷À¸·Î Á¦¾î¸¦ ¿Å°Ü ¹ö¸°´Ù. ÀÌ·± ½ÄÀ¸·Î Äڵ尡 °³±¸¸®Ã³·³ ¾Æ¹«°÷À¸·Î³ª Á¡ÇÁÇØ ´Ù´Ï¸é ÀÌ Äڵ带 º¸´Â »ç¶÷Àº ¹°·ÐÀÌ°í Á÷Á¢ ÀÛ¼ºÇÑ »ç¶÷µµ ¾îÁö°£Çؼ´Â ºÐ¼®ÇϱⰡ ¾î·Æ´Ù. ´ÙÀ½ °¡»óÀÇ Äڵ带 º¸ÀÚ.
goto¹®ÀÌ ¸¹±â ¶§¹®¿¡ À̸® Àú¸® ¶Ù¾î ´Ù´Ï´À¶ó Á¤½ÅÀÌ ¾ø´Ù. °Ü¿ì ·¹ÀÌºí ´Ù¼¸ °³ Á¤µµ·Îµµ Àú ¸ð¾çÀε¥ ·¹À̺íÀÌ ¼ö¹é°³ Á¤µµ µÇ¸é ¾î¶»°Ô µÇ°Ú´Â°¡? ÀÌ·¸°Ô ¾óÅ°°í ¼³Å² Äڵ带 ½ºÆÄ°ÔƼ ¼Ò½º¶ó°í Çϴµ¥ ¸¶Ä¡ ½ºÆÄ°ÔƼ ¸é¹ßÀÌ ²¿¿© ÀÖ´Â °Íó·³ º¹ÀâÇؼ À¢¸¸ÇÑ Ã¼·ÂÀ¸·Î´Â ÀÌ·± Äڵ带 °ü¸®Çϱ⠾î·Æ´Ù. ¿©´ãÀÌÁö¸¸ »ç½Ç ½ºÆÄ°ÔƼ°¡ ²¿¿© ºÁ¾ß ¾ó¸¶³ª ²¿¿© Àְڴ°¡? ¿ì¸®³ª¶ó »ç¶÷ÀÌ C¸¦ ¸¸µé¾ú´Ù¸é ¾Æ¸¶ ¶ó¸é ÄÚµå¶ó°í À̸§À» ºÙ¿´À» °ÍÀÌ´Ù.
¶ÇÇÑ goto¹®Àº ÇÁ·Î±×·¥ÀÇ ±¸Á¶¸¦ ÇØÄ¡±â ¶§¹®¿¡ goto¹®À» »ç¿ëÇÑ ¼Ò½º´Â À̽ļº°ú Àç»ç¿ë¿¡ ¹«Ã´ ºÒ¸®ÇÏ´Ù. ƯÁ¤ µ¿ÀÛÀ» ÇÏ´Â Äڵ带 ´Ù¸¥ ÇÁ·Î±×·¥¿¡¼ Àç»ç¿ëÇÏ·Á¸é goto¹®¿¡ ÀÇÇØ ¾ûÄÑ ÀÖ´Â ½ÇÀ» ´Ù Ç®¾î¾ß ÇÏ°í ¿Å±ä ÈÄ¿¡ ´Ù½Ã ±× ÇÁ·Î±×·¥¿¡ ¸Â°Ô ¿¬°áÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¾Æ¹« ±ÔÄ¢À̳ª Çü½Ä¾øÀÌ Á¦¾î¸¦ ¸¶À½´ë·Î ¿Å±æ ¼ö ÀÖ´Ùº¸´Ï ºÎÀÛ¿ëÀÌ ¸¹´Ù.
ÀÌ·± ¿©·¯ °¡Áö ÀÌÀ¯·Î ¾ÆÁÖ Æ¯º°ÇÑ °æ¿ì°¡ ÇÏ´Ñ ÇÑÀº goto¹®À» »ç¿ëÇÏÁö ¸» °ÍÀ» ±ÇÀåÇÏ°í ÀÖ´Ù. goto¹®ÀÌ ¾Æ´Ï¸é µµÀúÈ÷ ÇØ°áÇÒ ¼ö ¾ø´Â ±×·± ¹®Á¦´Â ¾ø´Ù. goto¹®ÀÌ ¾ø¾îµµ for, while, switch°°Àº Á¦¾î¹®À¸·Î ÇÊ¿äÇÑ ¸ðµç ±¸Á¶¸¦ ´Ù ¸¸µé ¼ö ÀÖ´Ù´Â °ÍÀÌ ÀÌ¹Ì ¼öÇÐÀûÀ¸·Î Áõ¸íµÇ¾î ÀÖ´Ù. Ưº°ÇÑ °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â goto¹®À» ¾²Áö ¸»¾Æ¾ß Çϸç ƯÈ÷ óÀ½ ÇÁ·Î±×·¥¿¡ ÀÔ¹®ÇÏ´Â »ç¶÷Àº ÀǽÄÀûÀ¸·Î goto¹®À» ¾²Áö ¾Ê´Â ¿¬½ÀÀ» ÇØ¾ß ÇÑ´Ù.
±×·¸´Ù¸é ÀÌ·¸°Ô ¾Ç¸í³ôÀº goto¹®À» C¾ð¾î´Â ¿Ö Áö¿øÇÏ´Â °ÍÀϱî? »Ó¸¸ ¾Æ´Ï¶ó ºñ±³Àû ÃֽŠ¾ð¾îÀÎ ÀÚ¹Ù³ª C#¿¡µµ ¿©ÀüÈ÷ goto¹®Àº Á¸ÀçÇϴµ¥ ÀÌ ¸í·ÉÀÌ ºñ·Ï ºÒÇÊ¿äÇϱâ´Â ÇÏÁö¸¸ °¡²û ¾ÆÁÖ È¿À²ÀûÀ¸·Î »ç¿ëÇÒ °÷ÀÌ ³²¾Æ Àֱ⠶§¹®ÀÌ´Ù. ½Ã½ºÅÛ ÇÁ·Î±×·¥À̳ª µð¹ÙÀ̽º µå¶óÀ̹ö°°ÀÌ À̽ļºÀ̳ª À¯ÁöÀÇ ÆíÀǼº, °¡µ¶¼ºº¸´Ù´Â ¹«¾ùº¸´Ù ¼º´ÉÀ» ÃÖ¿ì¼±À¸·Î ÇÏ´Â °÷¿¡´Â ¿©ÀüÈ÷ goto°¡ »ç¿ëµÈ´Ù. ¿Ö³ÄÇϸé goto´Â ÄÄÇ»ÅÍ°¡ ¾Ë¾ÆµéÀ» ¼ö ÀÖ´Â À¯ÀÏÇÑ Á¦¾î¹®ÀÌ¸ç ¶ÇÇÑ ÄÄÇ»ÅÍ°¡ °¡Àå ½±°Ô ½ÇÇàÇÒ ¼ö ÀÖ´Â Á¦¾î¹®À̱⠶§¹®ÀÌ´Ù. ÄÄÇ»ÅÍ´Â for³ª while°°Àº °Ç ¸ð¸¥´Ù. ¿À·ÎÁö Á¤ÇØÁø ¹øÁö·Î Á¡ÇÁÇÏ´Â °Í¸¸ °¡´ÉÇϸç ÄÄÆÄÀÏ·¯°¡ for, whileÀ» ±â°è°¡ ¾Ë¾ÆµéÀ» ¼ö ÀÖ´Â Á¡ÇÁ¹®À¸·Î ¹Ù²ãÁÖ´Â °ÍÀÌ´Ù.