¿ì¸®´Â ¹«¾ùÀ» ´Ù·ê °ÍÀΰ¡? |
---|
|
¼¼¹øÂ°ÀÇ ¿ì¸®ÀÇ ±âÃÊÀûÀÎ ºôµùºí·ÏÀº ºÐ±âÇϱâ ȤÀº Á¶°Ç ¼¼ú¹® 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, 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ȸµ¹À̸¦ »ç¿ëÇÏ¿© ¹®ÀÚ¿ÀÌ ºô ¶§±îÁö ȤÀº ¿¹Á¦¿Í °°ÀÌ ¸®½ºÆ®¸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¶æÇÑ´Ù. ÆÄÀ̽ã, Å¥º£ÀÌÁ÷ ±×¸®°í ƼŬ ¸ðµÎ´Â ÀÌ·±½ÄÀ¸·Î ºÒ¸®¾ð °ª¿¡ Á¢±ÙÇÑ´Ù.
ƼŬÀÇ if ¼¼ú¹®Àº ´ë´ÜÈ÷ ºñ½ÁÇÏ¿©, ´ÙÀ½°ú °°´Ù:
if {$x < 5} { puts $x }elseif {$x == 5} { puts "its 5!" }else{ puts "greater than 5" }
À̰ÍÀº Á÷¼³ÀûÀ̸ç, ¹°·Ð elseif¿Í else ºÎºÐÀº ¼±ÅÃÀûÀÌ´Ù. ±×·¯³ª ¿©·¯ºÐÀº ¾Æ¸¶µµ ±×°ÍÀ» ¿¹»óÇßÀ» °ÍÀÌ´Ù.
ÀÏ·ÃÀÇ ³»Æ÷µÈ 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¿Í °°Àº ¹æ½ÄÀ¸·Î »ç¿ëµÈ´Ù.
±â¾ïÇØ¾ß ÇÒ ¿äÁ¡ |
---|
|
Previous  Next  Contents
ÀÌ ÆäÀÌÁö¿¡ ´ëÇÏ¿© Áú¹® ȤÀº Á¦¾È»çÇ×ÀÌ ÀÖÀ¸¸é ´ÙÀ½ÁÖ¼Ò·Î ³ª¿¡°Ô ÀüÀÚ¸ÞÀÏÀ» º¸³»¶ó:
agauld@crosswinds.net