°áÁ¤, °áÁ¤

¿ì¸®´Â ¹«¾ùÀ» ´Ù·ê °ÍÀΰ¡?
  • ¼¼ ¹ø°ÀÇ ÇÁ·Î±×·¡¹Ö ±¸Á¶ - ºÐ ±â
  • ´ÜÀÏ ºÐ±â¿Í ´ÙÁß ºÐ±â
  • ºÒ¸®¾ð Ç¥Çö½Ä »ç¿ëÇϱâ

¼¼¹ø°ÀÇ ¿ì¸®ÀÇ ±âÃÊÀûÀÎ ºôµùºí·ÏÀº ºÐ±âÇϱâ ȤÀº Á¶°Ç ¼­¼ú¹® conditional statementsÀÌ´Ù. À̰͵éÀº ¿ì¸®ÀÇ ÇÁ·Î±×·¥ ¾È¿¡¼­ ¾î¶² Á¶°Ç¿¡ µû¶ó¼­ ÄÚµåÀÇ ¸î °³ÀÇ °¡´ÉÇÑ ¿¬¼ÓÁß¿¡¼­ Çϳª¸¦ ½ÇÇàÇÏ´Â ´É·ÂÀ» °£´ÜÇÏ°Ô ±â¼úÇÏ´Â ¿ë¾îÀÌ´Ù.

¾î¼Àºí·¯ ÇÁ·Î±×·¥ÀÇ ÃÊâ±â·Î µ¹¾Æ°¡¼­ °¡Àå °£´ÜÇÑ ºÐ±â´Â JUMP¸í·É¾î·Î¼­ °Å±â¿¡¼­ ÇÁ·Î±×·¥Àº º¸Åë ±× Àü ¸í·É¾îÀÇ °á°ú°¡ 0À̶ó¸é, ¹®ÀÚ ±×´ë·Î ƯÁ¤ÇÑ ¸Þ¸ð¸® ÁÖ¼Ò·Î Á¡ÇÁÇÑ´Ù - ³î¶øµµ·Ï º¹ÀâÇÑ ÇÁ·Î±×·¥ÀÌ ´Ù¸¥ ÇüÅÂÀÇ Á¶°ÇÀÌ ½ÇÁ¦ÀûÀ¸·Î °¡´ÉÇÏÁö ¾ÊÀ½¿¡µµ ºÒ±¸ÇÏ°í ÀÛ¼ºµÇ¾îÁ³´Ù - ÇÁ·Î±×·¡¹ÖÀ» À§ÇÑ ÃÖ¼ÒÇÑÀÇ ÇÊ¿äÁ¶°Ç¿¡ °üÇÑ ´ÙŸå½ºÆ®¶óÀÇ ¾ð±ÞÀÇ Á¤´ç¼ºÀ» ÀÔÁõÇÑ´Ù. »óÀ§ ¼öÁØ ¾ð¾î°¡ ³ªÅ¸³ªÀÚ JUMP¸í·É¾îÀÇ »õ·Î¿î ¹öÀüÀÌ ³ªÅ¸³ª GOTO¶ó°í ºÒ¸®¿öÁ³´Ù. »ç½Ç º£ÀÌÁ÷Àº ¿©ÀüÈ÷ GOTO ¸¦ Á¦°øÇÏ°í ÀÖÀ¸¸ç ¿©·¯ºÐÀº ´ÙÀ½ÀÇ ÄÚµåÀÇ Á¶°¢À» ŸÀÌÇÁÇØ º½À¸·Î½á ±×°ÍÀ» ½ÃÇèÇØ º¼ ¼ö ÀÖ´Ù:

10 PRINT "Starting at line 10"
20 J = 5
30 IF J < 10 GOTO 50
40 Print "This line is not printed"
50 STOP

ÀÌ·¸°Ô ªÀº ÇÁ·Î±×·¥¿¡¼­Á¶Â÷µµ ¹«½¼ÀÏÀÌ ÁøÇàµÇ°í ÀÖÀºÁö ÀÌÇØÇϱâ À§Çؼ­´Â ¾ó¸¶³ª ½Ã°£ÀÌ °É¸®´ÂÁö¸¦ ÁÖ¸ñÇ϶ó. ±× Äڵ忡´Â ±¸Á¶°¡ ÀüÇô ¾øÀ¸¸ç, ¿©·¯ºÐÀº ¹®ÀÚ±×´ë·Î ±×°ÍÀ» ÀÐÀ¸¸é¼­ ÀÌÇØÇØ¾ß ÇÑ´Ù. ±×·¯ÇÑ ÀÌÀ¯·Î ´ëºÎºÐÀÇ Çö´ëÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î´Â Á÷Á¢ÀûÀÎ JUMP³ª ȤÀº GOTO¹®À» °¡Áö°í ÀÖÁö ¾Ê°Å³ª ±×·¸Áö ¾ÊÀ¸¸é ¿©·¯ºÐÀÌ ±×°ÍÀ» »ç¿ëÇÏÁö ¾Êµµ·Ï ±ÇÀåÇÑ´Ù.

if ¼­¼ú¹®

°¡Àå Á÷°üÀûÀ¸·Î ¸í¹éÇÑ Á¶°Ç ¼­¼ú¹®Àº if, then, else ±¸Á¶ÀÌ´Ù. ¸¸¾à if ¾î¶² ºÒ¸®¾ð Á¶°ÇÀÌ ÂüÀ̶ó¸é ±×·¯¸é then ÇÑ ºí·ÏÀÇ ¼­¼ú¹®ÀÌ ½ÇÇàµÇ°í ±×·¸Áö ¾ÊÀ¸¸é(¶Ç´Â else) ´Ù¸¥ ºí·ÏÀÌ ½ÇÇàµÈ´Ù´Â Á¡¿¡¼­ ±×°ÍÀº ¿µ¾îÀÇ ³í¸®¸¦ µû¸¥´Ù.

±×°ÍÀº º£ÀÌÁ÷¿¡¼­ ÀÌ·¸°Ô º¸ÀδÙ:

PRINT "Starting Here"
J = 5
IF J > 10 THEN
    PRINT "This is never printed"
ELSE
    STOP
END IF

´ÙÇེ·´°Ôµµ ÀÌ°ÍÀº ÀÌÀüÀÇ GOTO¿¹Á¦º¸´Ù´Â Àаí ÀÌÇØÇϱ⿡ ´õ ½±´Ù. ¹°·Ð ±×°ÍÀÌ Âü ȤÀº °ÅÁþÀ¸·Î Æò°¡µÇ´ÂÇÑ Áï ºÒ¸®¾ð °ªÀÎ ÇÑ, ¿ì¸®°¡ ¿øÇÏ´Â ¾î¶°ÇÑ °ËÁõÁ¶°ÇÀÌ¶óµµ ¿ì¸®´Â if ÀÇ µÚ¿¡ ³õÀ» ¼ö°¡ ÀÖ´Ù.

ÆÄÀ̽㵵 ´ë´ÜÈ÷ ºñ½ÁÇÏ´Ù:

import sys  # only to let us exit
print "Starting here"
j = 5
if j > 10:
    print "This is never printed"
else:
    sys.exit()

ÀÌ°ÍÀº °ÅÀÇ µ¿ÀÏÇÏ´Ù, ±×·¸Áö ¾ÊÀº°¡?

¿©·¯ºÐÀº ´Ù¸¥ Çϳª¿¡ ¶Ç ´Ù¸¥ Çϳª¸¦ ´ÙÀ½°ú °°ÀÌ ³»Æ÷½ÃÅ´À¸·Î½ánesting, °è¼ÓÇÏ¿© ÀÌ·¯ÇÑ if/then/else ¼­¼ú¹®À» ÇÔ²² ¿¬°áÇÒ ¼ö ÀÖ´Ù:

# Assume width created previously...
if width == 100:
   area = 0
else:
   if width == 200:
      length = length * 2
   else:
      if width == 500:
           width = width/10
      else:
           print "width is an unexpected value!"

ÁÖ ÀÇ:¿ì¸®´Â == À» »ç¿ëÇÏ¿© °¢°¢ÀÇ if ¼­¼ú¹®ÀÇ µ¿µî¼ºÀ» °ËÁõÇÏ¿´´Ù. ¹Ý¸é¿¡ ¿ì¸®´Â = À» »ç¿ëÇÏ¿© º¯¼ö¿¡ °ªÀ» ÇÒ´çÇÏ¿´´Ù. ¿©·¯ºÐÀÌ == ¸¦ »ç¿ëÇÏ·Á°í ÇÒ ¶§ = ¸¦ »ç¿ëÇÏ´Â °ÍÀº ÆÄÀ̽ã ÇÁ·Î±×·¡¹Ö¿¡¼­ °¡Àå ÈçÇÑ ½Ç¼öÁßÀÇ ÇϳªÀÌ´Ù, ´ÙÇེ·´°Ôµµ ÆÄÀ̽ãÀº ¿©·¯ºÐ¿¡°Ô ±×°ÍÀº ±¸¹®¿¡·¯¶ó°í °æ°íÇØ ÁØ´Ù. ±×·¯³ª ¿©·¯ºÐÀº ¼¼½ÉÇÏ°Ô »ìÆì¼­ ±× ¹®Á¦¸¦ ÀνÄÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.

ºÒ¸®¾ð Ç¥Çö½Ä

¿©·¯ºÐÀº '¿ø Àç·á'ÀÇ ¼½¼Ç¿¡¼­ ¿ì¸®°¡ ºÒ¸®¾ðBoolean ÇüÀÇ µ¥ÀÌŸ¸¦ ¾ð±ÞÇß´Ù´Â °ÍÀ» ±â¾ïÇÒ Áö ¸ð¸£°Ú´Ù ±×°ÍÀº ´ÜÁö µÎ °³ÀÇ °ª¸¸À» °¡Áø´Ù°í ¿ì¸®´Â ¸»Çß´Ù:true ȤÀº false. ¿ì¸®´Â °ÅÀÇ ºÒ¸®¾ð º¯¼ö¸¦ ¸¸µéÁö´Â ¾Ê´Â´Ù ±×·¯³ª ¶§·Î´Â ÀÓ½ÃÀûÀÎ ºÒ¸®¾ð °ªÀ» ¸¸µé¾î Ç¥Çö½ÄexpressionsÀ» »ç¿ëÇÑ´Ù. Ç¥Çö½ÄÀº °ªÀ» »êÃâÇϱâ À§ÇÏ¿© ¿¬»êÀÚ¿¡ ÀÇÇÏ¿© °áÇÕµÈ °ª°ú º¯¼öÀÇ Á¶ÇÕÀÌ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¿¡¼­:

if x < 5:
  print x

x < 5´Â Ç¥Çö½ÄÀÌ´Ù. Ç¥Çö½ÄÀÌ °á±¹¿£ ÇϳªÀÇ °ªÀ¸·Î Æò°¡µÇ´ÂÇÑ Ç¥Çö½ÄÀº ÀÓÀÇÀûÀ¸·Î º¹ÀâÇÒ ¼ö ÀÖ´Ù. ºÐ±âÀÇ °æ¿ì¿¡ ±× °ªÀº ¹Ýµå½Ã Âütrue À̰ųª falseÀ̾î¾ß¸¸ ÇÑ´Ù. ±×·¸Áö¸¸, ÀÌ·¯ÇÑ 2°³ÀÇ °ªÀ» Á¤ÀÇ ÇÏ´Â °ÍÀº ¾ð¾î¿¡ µû¶ó º¯ÇÑ´Ù. ¸¹Àº ¾ð¾î¿¡¼­ °ÅÁþÀº 0 ȤÀº Á¸ÀçÇÏÁö ¾Ê´Â °ª(°¡²ûNULL, Nil ȤÀº NoneÀ̶ó°í ºÒ¸®¿î´Ù)°ú °°´Ù. ±×·±½ÄÀ¸·Î ºó ¸®½ºÆ® ȤÀº ¹®ÀÚ¿­Àº ºÒ¸®¾ðÀûÀÎ ¹®¸Æ¿¡¼­ °ÅÁþÀ¸·Î Æò°¡µÈ´Ù. ÀÌ°ÍÀº ¿ì¸®°¡ whileȸµ¹À̸¦ »ç¿ëÇÏ¿© ¹®ÀÚ¿­ÀÌ ºô ¶§±îÁö ȤÀº ¿¹Á¦¿Í °°ÀÌ ¸®½ºÆ®¸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¶æÇÑ´Ù. ÆÄÀ̽ã, Å¥º£ÀÌÁ÷ ±×¸®°í ƼŬ ¸ðµÎ´Â ÀÌ·±½ÄÀ¸·Î ºÒ¸®¾ð °ª¿¡ Á¢±ÙÇÑ´Ù.

TclÀÇ ºÐ±â

ƼŬÀÇ if ¼­¼ú¹®Àº ´ë´ÜÈ÷ ºñ½ÁÇÏ¿©, ´ÙÀ½°ú °°´Ù:

if {$x < 5} {
   puts $x
}elseif {$x == 5} {
   puts "its 5!"
}else{
   puts "greater than 5"
   }

ÀÌ°ÍÀº Á÷¼³ÀûÀ̸ç, ¹°·Ð elseif¿Í else ºÎºÐÀº ¼±ÅÃÀûÀÌ´Ù. ±×·¯³ª ¿©·¯ºÐÀº ¾Æ¸¶µµ ±×°ÍÀ» ¿¹»óÇßÀ» °ÍÀÌ´Ù.

Case ¼­¼ú¹®

ÀÏ·ÃÀÇ ³»Æ÷µÈ if/else/if/else... Àº ÀϹÝÀûÀÎ ±¸Á¶¿©¼­ ¸¹Àº ¾ð¾îµéÀÌ Æ¯º°ÇÑ ºÐ±âÀÇ ÇüŸ¦ ±×°ÍÀ» À§ÇÏ¿© Á¦°øÇÑ´Ù. ÀÌ°ÍÀº ¶§¶§·Î Case ȤÀº Switch ¼­¼ú¹®À¸·Î ¾ð±ÞµÇ°ï Çϴµ¥ ƼŬ ¹öÀüÀ¸·Î´Â ´ÙÀ½°ú °°´Ù:

switch $width {
    100 { set area 0}
    200 { set length [expr {$length * 2}] }
    500 { set width [expr {$width / 2}] }
    }

º£ÀÌÁ÷µµ ÆÄÀ̽㵵 ±×·¯ÇÑ ±¸Á¶¸¦ Á¦°øÇÏÁö´Â ¾ÊÁö¸¸ ´õ ½¬¿î if/elseif/else Çü½ÄÀ» Á¦°øÇÔÀ¸·Î¼­ ŸÇùÁ¡À» Á¦½ÃÇÑ´Ù:

if width < 100:
   area = 0
elif width < 200:
   length = length * 2
elif width < 500:
   width = width/10
else:
   print "width is too big!"

elifÀÇ »ç¿ë¹ý°ú (ÆÄÀ̽㿡¼­´Â ¾öû Áß¿äÇÑ) µé¿©¾²±â°¡ º¯ÇÏÁö ¾Ê¾Ò´Ù´Â »ç½ÇÀ» ÁÖ¸ñÇ϶ó. ¶ÇÇÑ ÀÌ ÇÁ·Î±×·¥¿¡ ´ëÇÑ µÎ °³ÀÇ ÆÄÀ̽㠹öÀü ¸ðµÎ µ¿µîÇÏ°Ô À¯È¿Çϸç, ´ÜÁö µÎ ¹ø°´Â Á¡°ËºÎ°¡ ¸¹´Ù¸é Àб⿡ ´õ ½¬¿ï »ÓÀ̶ó´Â °ÍÀ» ÁöÀûÇÒ ¸¸ÇÑ °¡Ä¡°¡ ÀÖ´Ù.

BASICÀº ¾à°£Àº ¼º°¡½Å ElseIf...THEN¹öÀüÀ» Á¦°øÇϴµ¥ ±×°ÍÀº Á¤È®È÷ ÆÄÀ̽ãÀÇ elif¿Í °°Àº ¹æ½ÄÀ¸·Î »ç¿ëµÈ´Ù.

±â¾ïÇØ¾ß ÇÒ ¿äÁ¡
  • if/else¸¦ »ç¿ëÇÏ¿© ºÐ±âÇ϶ó
  • else ´Â ¼±ÅÃÀûÀÌ´Ù
  • ´ÙÁß °áÁ¤Àº CASE ȤÀº if/elif ±¸Á¶·Î ³ªÅ¸³»¾îÁú ¼ö ÀÖ´Ù
  • ºÒ¸®¾ð Ç¥Çö½ÄÀº true ¶Ç´Â false ¸¦ ¹ÝȯÇÑ´Ù.

Previous  Next  Contents


ÀÌ ÆäÀÌÁö¿¡ ´ëÇÏ¿© Áú¹® ȤÀº Á¦¾È»çÇ×ÀÌ ÀÖÀ¸¸é ´ÙÀ½ÁÖ¼Ò·Î ³ª¿¡°Ô ÀüÀÚ¸ÞÀÏÀ» º¸³»¶ó: agauld@crosswinds.net