3.7 Á¶°ÇºÎ ¹Ýº¹ (while)

3.7.1 while ±¸¹®

  Á¶°ÇºÎ ¹Ýº¹À» ½ÇÇàÇÏ´Â whileÀº while (expression) ¿¡¼­ expressionÀÌ ¸¸Á·ÇÏ´Â µ¿ÇÑ while ~ end ±¸¹®À» ¹Ýº¹ÇÑ´Ù. While ±¸¹®À» ¹þ¾î³ª´Â °ÍÀº expressionÀÌ ¸¸Á·ÇÏÁö ¾Ê°Å³ª break ¹®À» »ç¿ëÇÏ´Â °ÍÀÌ´Ù.

 

 

 

3.7.2 shift ±¸¹®

  ¸ñ·Ï º¯¼ö³ª argument¸¦ Çϳª¾¿ °Ë»çÇϰíÀÚ ÇÒ ¶§ ÁÖ·Î »ç¿ëÇÑ´Ù. Shift¸¦ ÇÏ¸é µÎ ¹øÂ° ÀÖ´Â º¯¼ö°¡ ù ¹øÂ° º¯¼ö·Î ¿Å°Ü¿Â´Ù.

  shift¸¦ ÇÑ ¹øÇϸé,

  ¸Å shift ¿¬»ê¸¶´Ù À̰ÍÀÌ ¹Ýº¹µÈ´Ù.

 

 

 

3.8 ¼±Åà (switch)

  ¿©·¯ °¡Áö °æ¿ì¿¡ µû¶ó º°µµÀÇ ¸í·ÉÀ» ½ÇÇàÇÏ´Â °æ¿ì if ~ else if ~ else if ~ endif ±¸¹®À» ¿¬¼ÓÀûÀ¸·Î »ç¿ëÇÒ ¼öµµ ÀÖÁö¸¸ ÀÌ·¸°Ô µÇ¸é ÇÁ·Î±×·¥À» ÀÌÇØÇÏ±â ¾î·Æ´Ù. ÀÌ·² °æ¿ì switch ±¸¹®À» »ç¿ëÇϸé ÁÁ´Ù.

  Switch ±¸¹®Àº switch ~ endsw »çÀÌ¿¡ case ±¸¹®À» »ç¿ëÇÏ¿© °¢°¢ÀÇ case¿¡ µû¸¥ ½ÇÇà ¸í·ÉÀ» ÇÁ·Î±×·¥ ÇÑ´Ù. ±×¸®°í °¢°¢ÀÇ case´Â case ~ breaks·Î ±¸ºÐÇÑ´Ù.

 

 

3.9 È帧 º¯°æ (break, continue, goto, exit)

 

3.9.1 break

  Break ±¸¹®Àº foreach, while ±¸¹® ³»¿¡¼­ ÀÌ ±¸¹®À» °­Á¦·Î ¹þ¾î³ª°íÀÚ ÇÒ ¶§ »ç¿ëÇÑ´Ù.

 

3.9.2 continue

  Continue ±¸¹®Àº foreach, while ±¸¹® ³»¿¡¼­ ±¸¹®³»ÀÇ ±â´ÉÀ» ¼öÇàÇÏÁö ¾Ê°í ´ÙÀ½ ·çÇÁ·Î °¡°íÀÚ ÇÒ ¶§ »ç¿ëÇÑ´Ù.

 

3.9.3 goto

  Goto ±¸¹®Àº ÇÁ·Î±×·¥ÀÇ ¼öÇà Áß °­Á¦·Î ¾î¶² À§Ä¡·Î ºÐ±âÇϰíÀÚ ÇÒ ¶§ »ç¿ëÇÑ´Ù. ±×·¯³ª goto¸¦ ¸¹ÀÌ »ç¿ëÇϸé ÇÁ·Î±×·¥À» ÀÌÇØÇϰųª ¼öÁ¤Çϱâ Èûµé¾î Áö¹Ç·Î »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù.

  if³ª whileµî¿¡ ÀÇÇÑ ¿©·¯°³ÀÇ loop¸¦ ÇÑ ¹ø¿¡ ºüÁ®³ª¿À°íÀÚ ÇÒ ¶§´Â ÀÌ ¹æ¹ýµµ À¯¿ëÇÏ´Ù.

 

 

< ½¬¾î°¡´Â °÷ >

  ÇöÀç »ç¿ëÇÏ´Â ´ëºÎºÐÀÇ CPU´Â ÆÄÀÌÇÁ¶óÀÎÀ» Á¦°øÇÏ¸ç ¼öÇà¼Óµµ¸¦ ¿Ã¸®±â À§ÇØ ´ÙÀ½ ½ÇÇà¿¡ ÇÊ¿äÇÑ ÀνºÆ®·°¼Ç°ú µ¥ÀÌÅ͸¦ ½Ã½ºÅÛÀÇ main memory·ÎºÎÅÍ CPU cache¿¡ ¹Ì¸® °¡Á®¿Í ÀúÀåÇØ ³õ´Â´Ù.

  ±×·¯³ª goto ¹®À» ¸¸³ª¸é ÀÌ·¸°Ô ¹Ì¸® °¡Á®¿Í ÀúÀåÇØ ³õÀº °ÍÀÌ ¼Ò¿ë¾ø°í, goto°¡ Áö½ÃÇÏ´Â label ÀÌÈÄÀÇ ÀνºÆ®·°¼ÇÀ» ½ÇÇàÇϱâ À§ÇØ ½ÇÇàÄÚµå¿Í DataµîÀ» memory·Î ºÎÅÍ CPU cache·Î ´Ù½Ã °¡Á®¿Í¾ß ÇÑ´Ù. »õ·Î¿î ÀνºÆ®·°¼ÇÀ» cache·Î °¡Á®¿À´Â µ¿¾È CPU´Â ÀÛ¾÷´ë±â¿¡ µé¾î°¡°í, ÀÌ ½Ã°£ µ¿¾È CPU´Â ÀÛ¾÷À» ÇÏÁö ¾ÊÀ¸¹Ç·Î CPUÀÇ clockÀÇ ³¶ºñ¸¦ °¡Á®¿Â´Ù. ÀÌ·± °úÁ¤À¸·Î ÀÎÇØ ½Ã½ºÅÛÀÇ ¼º´ÉÀº ÀúÇÏÇÏ°Ô µÈ´Ù.

  Goto ¹®À» »ç¿ëÇϸé ÇÁ·Î±×·¥ÀÇ ÀÌÇØµµ ¾î·ÆÁö¸¸ ½Ã½ºÅÛ¿¡¼­ ½ÇÇà ½Ã¿¡µµ ÀÌ¿Í °°Àº ¹®Á¦°¡ ¹ß»ýÇÑ´Ù.

 

3.10 ȸ±Í (recursion)

  ¾î¶² program ¿¡¼­ ÀÚ±â ÀÚ½ÅÀ» È£ÃâÇÏ´Â °ÍÀ» ȸ±Í¶ó°í ºÎ¸¥´Ù. C shell program¿¡¼­´Â UNIX ¸í·ÉÀ̳ª ´Ù¸¥ script¸¦ È£ÃâÇÒ ¼ö ÀÖÀ¸¹Ç·Î, Shell Program¿¡¼­µµ ÀÚ±â ÀÚ½ÅÀ» È£ÃâÇÏ¿© »ç¿ëÇÒ ¼ö ÀÖ´Ù.

  È¸±ÍÀÇ ¹æ¹ýÀº ¶È°°Àº ¹æ¹ýÀ¸·Î ¿©·¯ ¹ø °°Àº ÀÏÀ» ¹Ýº¹ÇÒ ¶§ ÀÌ ±â¹ýÀ» »ç¿ëÇÑ´Ù. cp³ª rm ¸í·É¾î¿¡ ¡°-r¡± optionÀ» »ç¿ëÇÏ¿© sub µð·ºÅ丮¸¦ ã¾Æ°¡¸ç °°Àº ÀÏÀ» ½ÇÇàÇÒ °æ¿ìµµ ÀÌ ¹æ¹ýÀ» »ç¿ëÇϸç, °è½Â(ÆÑÅ丮¾ó)ÀÇ ¿¬»ê¿¡ À¯¿ëÇÏ´Ù.

 

  ´ÙÀ½ÀÇ µÎ ¿¹Á¦ Áß Ã³À½ÀÇ °ÍÀº ȸ±Í¸¦ »ç¿ëÇÑ °ÍÀ̸ç, µÎ ¹øÂ°ÀÇ °ÍÀº while ±¸¹®À» »ç¿ëÇÑ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î ÇÁ·Î±×·¥¿¡¼­ ȸ±Í¸¦ »ç¿ëÇÑ °æ¿ì´Â ½ÇÇà ÄÚµå´Â ÁÙ¾îµå³ª ½ÇÇà ½Ã°£ÀÌ ¸¹ÀÌ °É¸°´Ù. (ShellÀº ¾Æ´Ñ°Í °°´Ù.)