ÇöÀç ±¸Á¶´Â Çì´õº°·Î ÀÏÁ¤ÇÑ Å©±âÀÇ ¹öÆÛ¸¦ ÁغñÇØ ³õ°í ÆÄÀÏ¿¡¼ ¹öÆÛ Å©±â¸¸Å ÀоîµéÀδÙ. ÀÌ°ÍÀÌ °¡´ÉÇÑ ÀÌÀ¯´Â ºñ¾ÐÃà Æ÷¸ËÀÌ°í ·ÎÄÿ¡ ÀÖ´Â ÆÄÀÏÀ̱⠶§¹®ÀÌ´Ù. »ç½Ç
¿þÀ̺ê ÆÄÀÏ·Î À½¾ÇÀ» µè´Â »ç¶÷µµ ¾ø°í µ¿¿µ»óÀÇ À½¼ºÀÌ ¿þÀ̺ê·Î µÇ¾î ÀÖÁöµµ ¾Ê´Ù. ¿þÀ̺ê Àç»ýÀÌ ÇÊ¿äÇÑ
ÀÌÀ¯´Â ¾ÐÃàÀ» Ç®¾î Àç»ýÇϱâ À§ÇؼÀÌ´Ù.
¾ÐÃà Æ÷¸ËÀº ÀоîµéÀÌ´Â ±æÀÌ°¡ ÀÏÁ¤Çصµ Ç®¾úÀ» ¶§ÀÇ ±æÀÌ´Â ÀÏÁ¤ÇÏÁö ¾Ê´Ù.
1K¸¦ ÀоúÀ» ¶§ ¾ÐÃàÀ» Ç®¸é 2K°¡ µÉ ¼öµµ ÀÖ°í 5K°¡
µÉ ¼öµµ ÀÖ¾î °¡º¯ÀûÀÌ´Ù. °Ô´Ù°¡ ³×Æ®¿öÅ©¸¦ ÅëÇØ ½ºÆ®¸²À¸·Î ¹Þ´Â´Ù¸é Çѹø¿¡ µé¾î¿À´Â µ¥ÀÌÅ;絵 ÀÏÁ¤Ä¡
¾Ê´Ù. ¸ðµç °ÍÀÌ °íÁ¤ÀûÀÌÁö ¾Ê°í °¡º¯ÀûÀÌ´Ù. µû¶ó¼ ¿þÀ̺ê
Àç»ý ·çƾµµ ÀÌ·± »óȲÀ» ´ëºñÇØ¾ß ÇÑ´Ù.
¹öÆÛ ±æÀ̸¸Å Àд °ÍÀÌ ¾Æ´Ï¶ó ÀÓÀÇ ±æÀÌÀÇ ÆÐŶÀ» ¹Þ¾Æ µé¿©¾ß ÇÑ´Ù. ¹öÆÛ¸¦
´ú ä¿üÀ¸¸é ´Ù ä¿ï ¶§±îÁö ´ë±âÇÏ°í ÆÐŶÀÌ ³²¾ÒÀ¸¸é ´ÙÀ½ ¹öÆÛ·Î ³Ñ°Ü Áà¾ß ÇÑ´Ù. ¹öÆÛ Å©±â¿Í ÆÐŶ
Å©±âÀÇ ÀÓÀÇ Á¶ÇÕÀ» ´Ù Áö¿øÇØ¾ß ÇÑ´Ù. Á¶°¢³ ÆÐŶÀ» Á¶°¢³ ¹öÆÛ¿¡ ä¿ö ³Ö´Â ½ÄÀ̶ó Á¦¾î ±¸Á¶°¡ º¹ÀâÇÏ´Ù. ¿Ï¼ºµÈ ¿¹Á¦¸¦ º¸°í ºÐ¼®ÇØ º¸ÀÚ.
#include <stdio.h>
#include <windows.h>
#pragma comment(lib, "winmm.lib")
HWAVEOUT hWaveDev;
HANDLE hFile;
DWORD dwRead;
WAVEFORMATEX wf;
const int hdrnum = 3;
const int bufsize = 3000;
const int pktsize = 2000;
WAVEHDR hdr[hdrnum];
char samplebuf[hdrnum][bufsize];
long availhdr = hdrnum;
int nowhdr = 0;
char pktbuf[pktsize];
char* pktptr;
char* bufptr;
void CALLBACK waveOutProc(HWAVEOUT hwo, UINT uMsg,
DWORD_PTR dwInstance, DWORD_PTR dwParam1, DWORD_PTR dwParam2) {
if
(uMsg == WOM_DONE) {
InterlockedIncrement(&availhdr);
}
}
int PlayWave(LPCTSTR song)
{
hFile
= CreateFile(song, GENERIC_READ, FILE_SHARE_READ, NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
if
(hFile == INVALID_HANDLE_VALUE) {
puts("file
not found");
return
-1;
}
wf.cbSize
= sizeof(WAVEFORMATEX);
wf.wFormatTag
= WAVE_FORMAT_PCM;
SetFilePointer(hFile,
22, NULL, SEEK_SET); ReadFile(hFile, &wf.nChannels, 2, &dwRead, NULL);
SetFilePointer(hFile,
24, NULL, SEEK_SET); ReadFile(hFile, &wf.nSamplesPerSec, 4, &dwRead,
NULL);
SetFilePointer(hFile,
34, NULL, SEEK_SET); ReadFile(hFile, &wf.wBitsPerSample, 2, &dwRead,
NULL);
wf.nBlockAlign
= wf.nChannels * wf.wBitsPerSample / 8;
wf.nAvgBytesPerSec
= wf.nSamplesPerSec * wf.nBlockAlign;
waveOutOpen(&hWaveDev,
WAVE_MAPPER, &wf, (DWORD)waveOutProc, 0, CALLBACK_FUNCTION);
SetFilePointer(hFile,
44, NULL, SEEK_SET);
for
(int i = 0; i < hdrnum; i++) {
hdr[i].lpData
= samplebuf[i];
}
//
»ùÇà ¹öÆÛ Æ÷ÀÎÅÍ ÃʱâÈ.
bufptr
= samplebuf[nowhdr];
//
ÆÄÀÏ ´Ù ÀÐÀ» ¶§±îÁö ¹Ýº¹
for
(;;) {
ReadFile(hFile,
pktbuf, pktsize, &dwRead, NULL);
//
ÆÄÀÏ ³¡ µµ´ÞÇßÀ¸¸é ³ª¸ÓÁö »ùÇà µ¥ÀÌÅÍ º¸³»°í Á¾·áÇÑ´Ù.
if
(dwRead == 0) {
hdr[nowhdr].dwBufferLength
= bufptr - samplebuf[nowhdr];
waveOutPrepareHeader(hWaveDev,
&hdr[nowhdr], sizeof(WAVEHDR));
waveOutWrite(hWaveDev,
&hdr[nowhdr], sizeof(WAVEHDR));
InterlockedDecrement(&availhdr);
break;
}
//
ÆÐŶ Æ÷ÀÎÅÍ ÃʱâÈ. ³²Àº ÆÐŶ ÃʱâÈ
pktptr
= pktbuf;
int
remainpkt = dwRead;
//
ÆÐŶÀ» ´Ù ¾µ ¶§±îÁö ¹Ýº¹ÇÑ´Ù.
for
(;;) {
int
remainbuf = bufsize - (bufptr - samplebuf[nowhdr]);
//
¹öÆÛ ³²Àº¾çº¸´Ù ÆÐŶÀÌ ´õ ÀÛÀ¸¸é ä¿ö ³Ö°í ¹öÆÛ Æ÷ÀÎÅÍ À̵¿ ÈÄ ÆÄÀÏ Àб⠷çƾÀ¸·Î µ¹¾Æ°£´Ù.
if
(remainpkt < remainbuf) {
memcpy(bufptr,
pktptr, remainpkt);
bufptr
+= remainpkt;
break;
}
//
ÆÐŶÀÌ ´õ ¸¹À¸¸é ³²Àº ¹öÆÛ¸¦ °¡µæ ä¿î´Ù.
memcpy(bufptr,
pktptr, remainbuf);
//
¾´¸¸Å ÆÐŶÀº °¨¼ÒÇÏ°í ¹öÆÛ Æ÷ÀÎÅÍ´Â µÚ·Î À̵¿ÇÑ´Ù.
remainpkt
-= remainbuf;
pktptr
+= remainbuf;
hdr[nowhdr].dwBufferLength
= bufsize;
waveOutPrepareHeader(hWaveDev,
&hdr[nowhdr], sizeof(WAVEHDR));
waveOutWrite(hWaveDev,
&hdr[nowhdr], sizeof(WAVEHDR));
InterlockedDecrement(&availhdr);
while
(availhdr == 0) Sleep(20);
//
´ÙÀ½ ¹öÆÛ·Î À̵¿ÇÏ°í ¹öÆÛ Æ÷ÀÎÅ͸¦ ÃʱâÈÇÑ´Ù.
if
(++nowhdr == hdrnum) nowhdr = 0;
bufptr
= samplebuf[nowhdr];
}
}
while
(waveOutClose(hWaveDev) == WAVERR_STILLPLAYING) { Sleep(10); }
CloseHandle(hFile);
return
0;
}
int main()
{
PlayWave(TEXT("c:\\Temp\\takeonme.wav"));
}
¸î °³ÀÇ º¯¼ö°¡ »õ·Î Ãß°¡ µÇ¾ú°í Àç»ý ·çÇÁ´Â ¿ÏÀüÈ÷ ´Ù½Ã ÀÛ¼ºÇß´Ù. ÆÐŶÀÇ
Å©±â¸¦ ÁöÁ¤ÇÏ´Â pktsize »ó¼ö°¡ Ãß°¡µÇ¾úÀ¸¸ç 2000À¸·Î
ÃʱâÈÇß´Ù. ±×¸®°í ÀÌ Å©±â¸¸Å pktbuf¸¦ Á¤Àû ¹è¿·Î
¼±¾ðÇÑ´Ù. ÆÐŶ Å©±â¿Í ¹öÆÛ Å©±â°¡ ´Þ¶ó ÆÄÀÏ¿¡¼ ÀÐ¾î ¹öÆÛ¿¡ ¹Ù·Î ÀúÀåÇÒ ¼ö ¾øÀ¸¸ç ±×·¡¼ ÆÐŶÀ»
Àӽ÷ΠÀúÀåÇÒ ¹öÆÛ°¡ ÇÊ¿äÇÏ´Ù.
¹öÆÛ Å©±â´Â 3000À¸·Î ÁöÁ¤Çß´Ù.
È¿À²À» À§ÇØ ÆÐŶ°ú ¹öÆÛ´Â ´õ Å©°Ô Àâ¾Æ¾ß ÇÏ°í ¹è¼ö °ü°èÀÎ °ÍÀÌ ÁÁÀ¸¸ç ¹öÆÛ °³¼öµµ ³Ë³ËÇØ¾ß ÇÑ´Ù.
ÇÏÁö¸¸ Áö±ÝÀº ÇнÀÁßÀ̹ǷΠµ¿ÀÛ °úÁ¤À» »ó¼¼ÇÏ°Ô °üÂûÇØ º¸±â À§ÇØ °íÀÇÀûÀ¸·Î ¹è¼ö°¡ ¾Æ´Ñ °ªÀ¸·Î ¼³Á¤ÇÏ°í ¹öÆÛµµ 3°³¸¸ »ç¿ëÇÑ´Ù. ³Ê¹« ÀÛÀº Å©±â°¡ ¾Æ´Ï¸é ÀÓÀÇÀÇ ¾î¶² Á¶ÇÕÀ̶óµµ
µ¿ÀÛ °¡´ÉÇÏ´Ù. ÀÌ »óÅ¿¡¼ »ùÇà µ¥ÀÌÅ͸¦ ¾î¶»°Ô ä¿ö Àåºñ·Î º¸³»´ÂÁö ³»ºÎ µ¿ÀÛ °úÁ¤À» À¯ÃßÇØ º¸ÀÚ. ÃÖÃÊ ½ÇÇà½Ã ´ÙÀ½ °úÁ¤À» °ÅÃÄ ¹öÆÛ¸¦ ä¿ì°í »ç¿ëÇÑ´Ù.
µÎ°³ÀÇ for ¹«ÇÑ ·çÇÁ°¡ Àִµ¥ ¹Ù±ùÂÊ ·çÇÁ´Â ÆÄÀÏÀ» ´Ù ÀÐÀ» ¶§±îÁö
¹Ýº¹ÇÏ¸ç ¾ÈÂÊ ·çÇÁ´Â ÆÐŶ Çϳª¸¦ ´Ù ¾µ ¶§±îÁö ¹Ýº¹ÇÑ´Ù. ·çÇÁ ÁøÀÔÀü¿¡ ¹öÆÛ Æ÷ÀÎÅÍÀÎ bufptrÀº ù¹ø° Çì´õ ¹öÆÛÀÇ ¼±µÎ·Î ÃʱâÈÇÏ´Ù. ·çÇÁ·Î ÁøÀÔÇϸé
ÆÄÀÏÀ» ÆÐŶ Å©±â¸¸ÅÀÎ 2000¹ÙÀÌÆ®¸¦ ÆÐŶ ¹öÆÛ¿¡ Àд´Ù.
pktptrÀº ÆÐŶ ¹öÆÛÀÇ ¼±µÎ¸¦ °¡¸®Å²´Ù. bufptr, pktptr µÎ Æ÷ÀÎÅÍ´Â ÆÐŶ°ú
¹öÆÛÀÇ ÇöÀç À§Ä¡¸¦ °¡¸®Å²´Ù.
remainpktÀº ÆÐŶ ¹öÆÛÀÇ ³²Àº µ¥ÀÌÅ;çÀ¸·Î ÃʱâÈÇϴµ¥ ÀÌ
°æ¿ì 2000ÀÌ´Ù. ½ÃÀÛ ¹øÁö°¡ ÀÖ°í ÁøÇà Æ÷ÀÎÅÍ°¡ ÀÖÀ¸´Ï
³²Àº ¾çÀº pktptr - pktbuf ¼ö½ÄÀ¸·Î ±¸ÇÒ ¼ö ÀÖ´Ù. ±×·¯³ª remainpkt º¯¼ö°¡ º°µµ·Î ÇÊ¿äÇÑ ÀÌÀ¯´Â ÆÄÀÏ ³¡ºÎºÐ¿¡¼´Â ÆÐŶ ¹öÆÛ¸¦ ´Ù ä¿ìÁö ¸øÇÏ´Â °æ¿ì°¡ Àֱ⠶§¹®ÀÌ´Ù. ±×·¡¼ ³²Àº µ¥ÀÌÅ;çÀº ½ÇÁ¦ ÀÐÀº ¾çÀÎ dwRead·Î ¼³Á¤ÇÑ´Ù. ´ë°³ÀÇ °æ¿ì´Â pktsize¿Í °°Áö¸¸ ³¡¿¡¼¸¸ ´Þ¶óÁø´Ù.
º¯¼ö¸¦ ÃʱâÈÇÑ ÈÄ ¹öÆÛ¸¦ ä¿ì´Â ¾ÈÂÊ ·çÇÁ·Î ÁøÀÔÇÑ´Ù. remainbuf º¯¼ö´Â
¹öÆÛÀÇ ³²Àº ¾çÀÌ´Ù. Å©±â - ÁøÇà °Å¸® °ø½ÄÀ¸·Î ±¸Çϸç
ÁøÇà °Å¸®´Â ÇöÀç À§Ä¡-¼±µÎÀÌ´Ù. ¹öÆÛÀÇ ¹øÁö°¡ 6000ÀÌ°í bufptrÀÌ 7000¹øÁö¸¦
°¡¸®Å°°í ÀÖ´Ù¸é 1000¹ÙÀÌÆ®¸¦ »ç¿ëÇßÀ¸¹Ç·Î ³²Àº ¾çÀº 2000ÀÌ´Ù. »·ÇÑ ¼ö½ÄÀÌÁö¸¸ ¸Å¹ø °è»êÇϱ⠱ÍÂú¾Æ ·çÇÁ ¼±µÎ¿¡¼ Çѹø¸¸ °è»êÇؼ Áö¿ª º¯¼ö¿¡ ´ëÀÔÇØ µÎ¾ú´Ù.
´ÙÀ½ µ¿ÀÛÀº ¹öÆÛ¿Í ÆÐŶÀÇ ³²Àº ¾ç¿¡ µû¶ó ´Þ¶óÁø´Ù. ÃÖÃÊ ¹öÆÛ´Â 3000 ³²¾Ò°í ÆÐŶÀº 2000¸¸Å Àоú´Ù. ÆÐŶÀÌ ´õ ÀÛÀ¸´Ï ¹öÆÛ¸¦ °¡µæ ä¿ï ¼ö ¾øÀ¸¸ç ¾ÕºÎºÐ¸¸ ä¿ï ¼ö ÀÖ´Ù. ÀÐÀº
ÆÐŶÀº ¹öÆÛÀÇ ÇöÀç À§Ä¡¿¡ ÆÐŶ ±æÀ̸¸Å º¹»çÇÑ´Ù. ÀÌ °úÁ¤ÀÌ ±×¸²ÀÇ ¨ç¹ø¿¡ ÇØ´çÇÑ´Ù. ¹öÆÛÀÇ ÇöÀç À§Ä¡ÀÎ bufptrÀº ä¿î ±æÀ̸¸Å µÚ·Î À̵¿ÇÏ¿© ±×¸²»óÀÇ
À§Ä¡°¡ µÇ¸ç ´ÙÀ½ ÆÐŶÀ» ¿©±â´Ù ³ÖÀ¸¶ó°í ±â·ÏÇØ ³õ´Â´Ù.
±×¸®°í break·Î ·çÇÁ¸¦ Å»ÃâÇÏ¸é ¹Ù±ùÂÊ ·çÇÁ ¼±µÎ·Î µ¹¾Æ°¡ ÇÑ
ÆÐŶÀ» ´õ ÀоîµéÀδÙ. pktptrÀº ÆÐŶ ¼±µÎ¸¦ °¡¸®Å°°í ³²Àº ÆÐŶÀº 2000ÀÌ´Ù. ÀÌ »óÅ¿¡¼ ¾ÈÂÊ ·çÇÁ·Î µé¾î¿À¸é ³²Àº ¹öÆÛ°¡ 1000À¸·Î °è»êµÈ´Ù. À̹ø¿¡´Â ¹öÆÛº¸´Ù ÆÐŶÀÌ ´õ Å©´Ï if¹® ¾Æ·¡ÂÊÀ¸·Î ³»·Á¿Â´Ù. ³²Àº ¹öÆÛ°¡ ÀÛÀ¸´Ï ÆÐŶÀ» ´Ù º¹»çÇÒ
¼ö ¾ø°í ¹öÆÛ ³²Àº¾ç¸¸ÅÀÎ 1000¹ÙÀÌÆ®¸¸ º¹»çÇÑ´Ù. ÀÌ
°úÁ¤ÀÌ ±×¸²ÀÇ ¨è¹øÀÌ´Ù.
¿©±â±îÁö ÁøÇàÇÏ¸é ¹öÆÛ Çϳª¸¦ °¡µæ ä¿ü´Ù. ´ÙÀ½ ÀÛ¾÷À» À§ÇØ ÆÐŶ
³²Àº ¾çÀ» º¹»çÇѸ¸Å »©°í ÆÐŶÀÇ ÇöÀç À§Ä¡µµ ±×¸¸Å À̵¿ÇÏ¿© ±×¸²»óÀÇ pktptrÀ» °¡¸®Å²´Ù. ¹öÆÛ¸¦ °¡µæ ä¿î Çì´õ´Â Àåºñ·Î º¸³»°í ´ÙÀ½ Çì´õ·Î À̵¿Çϸç bufptrµµ
¹öÆÛ ¼±µÎ·Î ÀçÃʱâÈÇÑ´Ù. ¾ÆÁ÷ ÆÐŶÀ» ´Ù ¾´ °ÍÀÌ ¾Æ´Ï¾î¼ ¾ÈÂÊ
for ·çÇÁÀÇ ¼±µÎ·Î µ¹¾Æ°£´Ù. ÆÐŶÀÌ Å©¸é ÀÌ ·çÇÁ¸¦ ¿©·¯¹ø µ¹±âµµ ÇÑ´Ù. À̹ø¿¡´Â ¹öÆÛ°¡ ´õ ¸¹¾Æ ³²Àº ÆÐŶ 1000À» ´ÙÀ½ ¹öÆÛÀÇ ¼±µÎ¿¡
º¹»çÇÑ´Ù.
ÀÌ °úÁ¤ÀÌ ±×¸²ÀÇ ¨é¹øÀÌ´Ù. 1000¹ÙÀÌÆ® º¹»çÇÑ ÈÄ break·Î Å»ÃâÇÏ¸é ¹Ù±ùÂÊ ·çÇÁÀÇ ¼±µÎ·Î µ¹¾Æ°¡ ÇÑ ÆÐŶÀ» ´õ Àд´Ù. À̹ø¿¡´Â
ÆÐŶ Å©±â¿Í ¹öÆÛ Å©±â°¡ ²À ¸Â¾Æ if¹®ÀÇ ¹öÆÛ°¡ ´õ ÀÛ´Ù´Â Á¶°ÇÀº °ÅÁþÀÌ µÈ´Ù. ÆÐŶÀ» ¹öÆ۷Πä¿ì¸é ±×¸²ÀÇ ¨ê¹ø »óȲÀÌ µÈ´Ù. ´Ù ä¿üÀ¸´Ï Àåºñ·Î
º¸³»°í ´ÙÀ½ Çì´õ·Î À̵¿ÇÑ´Ù. remainpktÀÌ 0À̸é
¾ÈÂÊ for ·çÇÁÀÇ if¹®¿¡¼ ¾Æ¹« °Íµµ º¹»çÇÏÁö ¾Ê°í ·çÇÁ¸¦
Å»ÃâÇÏ¿© ´ÙÀ½ ÆÐŶÀ» Àд´Ù. ÀÌ °úÁ¤À» ÆÄÀÏ ³¡±îÁö ¹Ýº¹ÇÑ´Ù.
ÆÄÀÏÀÇ ¸¶Áö¸· ³¡ ºÎºÐÀº Ư¼öÇÑ »óȲÀÌ µÈ´Ù. pktsize ±æÀ̸¸Å
ÀÐÁö¸¸ ³¡¿¡¼´Â ´õ ª°Ô ³²À» °ÍÀÌ¸ç ±×·¡¼ remainbuf°¡
dwRead °ªÀ» ´ëÀԹ޴´Ù. ¿ä±¸ÇÑ °Íº¸´Ù ´ú ÀоúÁö¸¸ ÀÌ ÆÐŶµµ Àç»ýÀº ÇØ¾ß ÇÑ´Ù. ¾ÈÂÊ ·çÇÁ·Î µé¾î°¡ ¹öÆÛ¸¦ ´Ù ä¿ì¸é Àåºñ·Î º¸³»°í ³²À¸¸é ´ÙÀ½ ¹öÆÛ¿¡ ´ë±â½ÃÄÑ µÐ´Ù. ¹Ù±ùÂÊ ·çÇÁ ¼±µÎ¿¡¼ ´Ù½Ã ÀÐÀ¸¸é dwRead´Â 0ÀÌ µÇ¸ç À̶§ÀÇ »óȲÀº ´ÙÀ½°ú °°´Ù.
¹öÆÛ°¡ °¡µæ Âù »óȲµµ ¾Æ´Ï°í ±×·¸´Ù°í ´õ ÀÐÀ» µ¥ÀÌÅÍ°¡ ÀÖ´Â °Íµµ ¾Æ´Ï´Ù. À̶§´Â
¹Ì¿Ï¼º ¹öÆÛ¶óµµ Àåºñ·Î º¸³»¾ß ÇÑ´Ù. ¾ÈÂÊ ·çÇÁÀÇ Àü¼Û ÄÚµå´Â Ç×»ó ¹öÆÛ¸¦ ä¿ö º¸³»¹Ç·Î ±æÀÌ°¡ bufsizeÀÌÁö¸¸ ¸¶Áö¸· Àü¼Û ÄÚµå´Â ÀÐÀ½¸¸Å¸¸ º¸³»¸é µÈ´Ù. ¸¶Áö¸·
ÆÐŶÀ» Àåºñ·Î º¸³»°í break·Î Å»ÃâÇϸé ÆÄÀÏÀÇ ¸ðµç µ¥ÀÌÅ͸¦ ´Ù º¸³Â´Ù. ·çÇÁ ¹Ù±ù¿¡¼ µÞÁ¤¸®¸¦ ÇÏ°í Á¾·áÇÑ´Ù.
±æÁö ¾ÊÀº ÄÚµåÀÌÁö¸¸ Á¦¾î ±¸Á¶°¡ Àº±ÙÈ÷ º¹ÀâÇÏ´Ù. ÃÖ¼ÒÇÑ ÀÌÇØÇϱâ
½±µµ·Ï ÀÛ¼ºÇßÁö¸¸ °¢ º¯¼öÀÇ ¿ªÇÒ°ú º¯°æµÇ´Â Á¤È®ÇÑ ½ÃÁ¡°ú ÀÌÀ¯¸¦ Çѹø¿¡ ÀÌÇØÇϱâ´Â ½±Áö ¾Ê´Ù. ÀÌ·²
¶§´Â µð¹ö°Å¸¦ µ¹·Á º¸¸ç °¢ º¯¼ö°¡ ¾ðÁ¦ ¾î¶»°Ô ¹Ù²î´ÂÁö °üÂûÇØ ºÁ¾ß ÇÑ´Ù. ½Ã°£ÀÌ Á» °É¸®Áö¸¸ ³»ºÎ¸¦
µé¿©´Ù ºÁ¾ß È®½ÇÇÏ°Ô ÀÌÇصȴÙ.
ÀÌ ±¸Á¶°¡ ÃÖ¼±ÀÎ °Íµµ ¾Æ´Ï´Ù. ºÐ±â¾øÀÌ ¸ðµç ³í¸®¸¦ ÇÑ°÷¿¡ ÁýÁßÇÏ´Ù
º¸´Ï ÆÐŶÀ» Àü¼ÛÇÏ´Â Äڵ尡 ¹Ýº¹µÇ°í ·çÇÁ Å»Ãâ ½ÃÁ¡µµ Á÷°üÀûÀÌÁö ¸øÇÏ´Ù. while, do while µîÀÇ
´Ù¸¥ Á¦¾î ±¸Á¶¸¦ ä¿ëÇÏ°í ¹Ýº¹ ÄÚµå´Â ÇÔ¼ö·Î ºÐ¸®ÇÏ¿© Á¤¸®ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ¿©±â¼´Â ³í¸®¸¸ ÀÌÇØÇÏ°í
½ÇÁ¦ ÇÁ·ÎÁ§Æ®¿¡ »ç¿ëÇÒ ¶§´Â ÃëÇâ¿¡ ¸Â°Ô ¹Ù²ã ¾²±â ¹Ù¶õ´Ù.