๊ตฌ๊ธ์ ์๋ง์ฐพ์๋ ์๋์ค๋ด... ์์ด์ค๋ ฅ์ด ๋ธ๋ฆฌ๋ใ ใ for (int i=0; i<10; i++)์์ i++๋ง ์ธ๋ฏธ์ฝ๋ก ์๋ถ์ด๋ ์ด์ ๊ฐ ๋จธ์ผ?? ์ง์ง ๋งค๋ฒ ๊ถ๊ธํ์... - dc official App
if๋ฌธ์ ์กฐ๊ฑด๋์ ;์๋ถ์ด๋ ๊ฒ๊ณผ ๊ฐ์ ๊ทธ๋ฅ ๋ฌธ๋ฒ์ผ๋ก ์ ํด๋ ์ด์ ?
๊ทธ๊ฒ๋ ๊ถ๊ธํ๋ฐ.. ๊ทธ๋ฌ๋ฉด ์์ ๋๊ฐ๋ ์ฐ๋ฉด์๋๋๊ฑฐ์๋์ผ? - dc App
์ง๋ฌธ ์์ฒด๊ฐ ์ข ์ด์ํ๋ฐ ๊ทธ๋ฅ ๋ฌธ๋ฒ์ด์ผ์ค... ์ฌ๊ณผ, ๋ฐฐ, ๋ฐ๋๋ ๋ผ๊ณ ํ์ง ์ฌ๊ณผ, ๋ฐฐ, ๋ฐ๋๋, ๋ผ๊ณ ํ์ง ์๋๊ฒ์ ์๊ฐํด๋ณด์ธ์ค. ์ธ๋ฏธ์ฝ๋ก ์ ๋ฌธ๋ฒ์์ ๋ง์นจํ์ ๋น์ทํ ์๋ฏธ์ธ๋ฐ i๋ 0์ด๋ค; i๊ฐ 10๋ฏธ๋ง์ธ๊ฒฝ์ฐ์ ๋ฐ๋ณตํ๋ค; ๋ฐ๋ณต ์ i++ํ๋ค ๋ผ๋ ์๋ฏธ๋ฅผ forํค์๋๋ก ํ์ค๋ก ์ค์ฌ์ผ๋ค๊ณ ์๊ฐํ์ธ์ค.
๊ธ์ด์ด);๋ฅผ ๋ฐ์ ์ฒ๋ผ ๊ตฌ๋ถ์๋ก ์ผ๋ค๊ณ ์๊ฐํ๋ฉด ์ดํด๊ฐ ๋๋๋ฐ ๋ ๊ทธ๋ ๊ฒ์๊ฐํ๋ฉด if (blah) { variable++; } ๊ฐ์ด ์ค๊ดํธ๊ฐ ์์๋๋ ์ฐ๋๊น... ๋์ด๋งํ๋๋ก ๋ญ๊ฐ ์ด๋ค ์ฝ๋๋ฅผ ์ข ๊ฒฐํ๊ธฐ์ํด ํ์ํ๊ฑฐ๋ผ๋ฉด ๋ ๋งจ ๋์ i++๋ ๋น์ฐํ์จ์ค์ผํ์ง์๋ ์ถ์๋ฐ....ใ ใ - dc App
์ด์งํผ ๋ฌธ๋ฒ์ ์ธ ๋ถ๋ถ์ด๋ผ ์ด๋ ๊ฒ ์ค๋ช ํ๋ฉด ์ดํดํ์์ง ์์๊น ํ๋๋ฐ ์๋๊ฐ ๋ณด๋ค์ค.
if(์กฐ๊ฑด) while(์กฐ๊ฑด) ํจ์(ํ๋ผ๋ฏธํฐ) ์์ ์ ๋ถ ;์๋ถ์ด๋๊ฒ์ฒ๋ผ
๊ทธ๋ฅ for๋ฌธ ์์๋ ๊ตฌ๋ถ์ ์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ํ์ ๋ฟ์ด๊ณ ๋ง์ง๋ง์๋ ์์ ๊ฐ์ด ์ธ๋ฏธ์ฝ๋ก ์๋ถ์๋ค๊ณ ์๊ฐํ๋๊ฒ ๋ ํธํ ๊ฒ ๊ฐ๋ค์ค.
https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of%20C%20in%20Backus-Naur%20form.htm
์ ์ผ
์๋ iteration-statement์ for๋ณด์๋ฉด ๊ทธ๋ฅ ๊ทธ๋ ๊ฒ ์ ํ๊ฑฐ๊ณ , ์ ์ฒด์ ์ธ ๋ฌธ๋ฒ๋ณด์๊ณ ์ดํดํ์๋๊ฒ ๋์๊ฒ ๊ฐ์์ค.
์ง์ง์ด์ํ๋ค.. ๊ตฌ๋ถ์๋ก ์ฐ์ด๋ ๊ฒฝ์ฐ๊ฐ for๋ฌธ ๋ง๊ณ ๋ ์๋ค - dc App
์ ๋ค ์ด์ํ ์ง๋ฌธ๋ง ๊ฐ์ ธ์ค๋๊ฑฐ ์ง์ง ์ด๋์ ๊ฐ์ ธ์ค๋ ๊ฑฐ๋? ๋ด๊ฐ ๋ชจ๋ฅด๋ ์ขํ ํผ์๋ผ๋ ์๋? ์ง์ง ํผ๋ด๋ ํผ๋ด๋ ์๋ก์ด ๊ฒ์ ๊ฐ์ ธ์ค๋ค
์ด์ ์๊ฐ์ ธ์ฌ๊ฒ.... - dc App
์ ์ฒจ๋ดค๋ค ์ด๋ฐ๋ชจ์ต
๋๋ ์ด๋ธ์ข ๊ฒ์๊ฐ๋ฐ๋ํ๋ค
์ด๋ป๊ฒ๋ณด๋ฉด ๋ฐ๋ณด๊ฐ์์ง๋ฌธ์ผ์๋์๋๋ฐ, ์ด๋ป๊ฒ ์๊ฐํ๋ฉด ๋๋ฆ ์๋ฏธ์๋์ง๋ฌธ์. ์ฌ๋๋ค๋ผ๋ฆฌ ํฉ์ํ ๊ท์ ๋ ๊ท์น์ ๋ง๊ทธ๋๋ก ํฉ์๋ก ์ ํด์ง ๊ท์น์ด์ง๋ง, ๊ทธ๊ฒ์ด ์ ๊ทธ๋ฌํ ๊ฒฐ๊ณผ๋ก ํฉ์๋์๋์ง, ํ์คํ ๋ฆฌ๋ ์ค๊ณ์ ๋ ผ๋ฆฌ์๋ํ ๊ณ ๋ฏผ์ผ๋ก ๋ณด๋ฉด ๋ง๋ฅ ๋ฐ๋ณด๊ฐ์ ์ง๋ฌธ์ ์๋
ํ์ฅ์ค ์นธ๋ง์ด๊ฐ ๋์ชฝ ๋ฒฝ์์์ง ์์์์ - dc App
๊ทธ๋ผ 'for'๋์ 'ํฌ'๋ ์ ์๋จ? ๊ทธ๊ฒ๋ถํฐ ์ง๋ฌธํด์ผ์ง
์ธ๊ตญ์ด๋ฅผ ๋ฐฐ์ธ๋๋ ๋๊ฐ์๋ฐ ์ธ์ด๋ฅผ ๋นจ๋ฆฌ ๋ฐฐ์ฐ๋ ค๋ฉด ๋ฌด์ง์ฑ์ผ๋ก ๋ฐ์๋ค์ฌ์ผํ๋ค. ๋ณ์๋ณ ๊ท์น์ ์๋ผ๋ ์ง๋ฌธ์ด ๋ค์ด๊ฐ๋ฉด ๋ต์ด ์๋์ด
์ ๋ง ๊ทผ๋ณธ์ ์ธ ๋ต๋ณ์ ํด๋ณด์๋ฉด ๋ฌธ๋ฒ์ด ๊ทธ๋ ์ต๋๋ค.. ์ธ๋ฐ ๋๋ for ์์ ;์ ๊ฐ expression์ seperator๋ก ๋ดค์ด์ ์์ ํ์ฅ์ค ์นธ๋ง์ด ๋๊ธ์ฒ๋ผ ๊ทธ๋ฐ ์๊ฐ์ ์ ์ด์ ํด๋ณธ์ ์ด ์๋ค
separator๋ ๋ณดํต ๋ฐ์ ์ด์๊ณ (๋์ ๋๋ฆฌ์์์ ๋ฐ์ ์ ์ญํ ๋ก ์ถ๋ก ํด๋ดค์๋) ์ธ๋ฏธ์ฝ๋ก ์ ์ข ๊ฒฐ์ ์๋ฏธ์๋๋ฐ i++์ ๋ถ์ด์ง์๋๊ฑฐ๋ i++ ๋ค์ ๊ณ์ ์ด์ด์ง๋ค๋ ์๋ฏธ ์ธ์๋ ํด์ํ ์ฌ์ง๊ฐ์์ง์์...? ์๊ดํธ๋ง๊ณ ์ค๊ดํธ์์์ i++๋ค์ ๋ฌด์กฐ๊ฑด ์ธ๋ฏธ์ฝ๋ก ์จ์ค์ฌ๋๋๋ฐ ๋์ด ๋ญ์ฐจ์ด๊ฐ ์๊ธธ๋ใ - dc App
๋ฌด์จ ๋ง์ ํ๋ ๊ฑด์ง๋ ์๊ฒ ์ด.. ๊ทผ๋ฐ ์ฒจ์ ์๊ธฐํ๋ฏ์ด ๊ทธ๋ ๊ฒ ๋ง๋ค์ด์ง ์ธ์ด๋ผ์.. ๋ฌธ๋ฒ ๋์์ธ ์์ฒด์ ํด๋ ์์ ๊ฑธ๊ณ ์ถ์๊ฑฐ๋ผ๋ฉด์ผ ๋ญ ์ดํด๋ ํ๋๋ฐ ์ด๊ฑฐ๋ ๊ทธ๋ฅ ๋ฃฐ์ด ๊ทธ๋ฐ๊ฑฐ๋ ๋ฐ์๋ค์ด๋ ์ ๋ฐ์ ์๋๋ฏ ์ด๋ฅผํ ๋ฉด = ์ ๋ถ๋ช ์ํ๊ธฐํธ๋ก ๊ฐ๋ค๋ ์๋ฏธ์ธ๋ฐ ๋ง์ ์ธ์ด๋ค์์ ๋์ (assign)์ผ๋ก ์ฌ์ฉํ์์? ์ด๋ฐ๊ฑด ๊ทธ๋ฅ ๊ทธ ์ธ์ด๊ฐ ๊ทธ๋ ๊ฒ ์ ํ๊ฑฐ๋ผ์ ๋ฐ์๋ค์ด๋ ๋ฐฉ๋ฒ ๋ง๊ณ ๋ ์ด๋ป๊ฒ ํ ์๊ฐ ์๋๊ฑธ..
๊ทธ๊ฑด ๊ทธ๋ฐ๋ฐ ๋ง์ฝ =์ด๊ฑธ ๋์ ์ด๋ผ๊ณ ํด๋๊ณ ๋ if๋ฌธ์์๋ง '๊ฐ๋ค'๋ ์๋ฏธ๋ก ์ฐ๋ฉด ๋ฌธ์ ๊ฐ๋๋๋ฐ ๋์ ์ด๋ผ๊ณ ํ๊ณ ์ญ ๋์ ์์๋ฏธ๋ก ์ฐ์๋... ๊ทผ๋ฐ ์ด๊ฑฐ๋ ์ง๋ค์ด ์ข ๊ฒฐ์์๋ฏธ๋ผ๊ณ ํด๋๊ณ for๋ฌธ์๋ง ๋ ์์ฐ๋๊น.. ์ํผ ์๊ฒ ์ ๊ณ ๋ง๊ณ ์ฌ๋ํ๊ณ ๊ทธ๋ฅ ใทใ ๊ณ ์ธ๊ฒ - dc App
์ฃผ์ด์ง ํ์ ๊ทธ๋๋ก ๋ฐ์๋ค์ด์ง ์๊ณ ์๋ฌธ์ ๊ฐ์ ธ๋ณด๋ ๊ฑด ์ข์ ์์ธ๋ผ๊ณ ์๊ฐํด. ํ๋ด๋ ด
๋ณ ๊ด์ฌ์ ์๊ฒ ์ง๋ง ์ธ๋ฏธ์ฝ๋ก ์ํคํผ๋์์ Computing Usage์น์ ์ ์ฝ์ด๋ณด๋ ด. C language family๋ฅผ ๋น๋กฏํ ๋ง์ ์ธ์ด๋ค์์ ์ธ๋ฏธ ์ฝ๋ก ์ด ์ seperator์์ terminator๋ก์ ์๋ํ๊ฒ ๋์๋์ง์ ๊ดํ ํ์คํ ๋ฆฌ๋ฅผ ์ฐพ์ ์ ์๋จ๋ค
์ธ๋ฏธ์ฝ๋ก ์ ๊ตฌ๋ถ์๋กํ ์ง ์ข ๊ฒฐ์๋ก ํ ์ง ๋ ผ์์ด์์๊ตฌ๋... ๊ทผ๋ฐ ๊ฒฐ๊ตญ ์ข ๊ฒฐ์๋ก ๊ฒฐ์ ๋ซ๊ตฌ๋.. ๊ทผ๋ฐ for๋ฌธ์์ ๊ตฌ๋ถ์๋ก ์ฐ์ด๋๊ฑด๊ฐ? ์์ง?ใ ใ ใ - dc App
๋ง์ง๋ง์ ์๋ค์ด๊ฐ๋ ์ด์ ๋ ๊ทธ๋ ๊ฒ ๋ง๋ค์๊ธฐ ๋๋ฌธ์
๋ค๋ฅธ ์ธ์ด๋ฅผ ํด๋ณด๋ฉด ํ์คํ ์ ์ ์๋ค. ๊ผญ ์ ๋ ์ง๋ง์ ์๋ค๋๊ฑฐ....๋ฃจ์๋ฅผ ํด๋ณด๋ ์ง ํ์ด์ฌ์ ํด๋ณด๋ ์ง ๋ค๋ฅธ ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ํด๋ณด๋ฉด ๋จ. ๊ทธ๋ฅ C++ ์ด๋ C# ์ ํด๋๊ณ ์ฐ๋๊ฑฐ์. ๋ฌผ๋ก ์ฐ๋ ํผ์ ์ฐ๊ฒ ๋ค๊ณ ํ๋ฉด .... ์ธ๋ฏธ์ฝ๋ก ์ ๊ผญ ์์จ๋ ๋๊ณ C++ ๋ณด๋ค ๋ ์๋ซ๋จ๊ณ๋ก ๊ฐ์ ๋ฐ๊พธ๋ฉด ๋จ. ์๋๋๊ฑด ์๋. ๊ทธ๋ฐ๋ฐ ์ํ๋๊ฑฐ์.... ๋ฐ์๋ค์ด๋๊ฒ ์๋๋ผ ..... ์ฐ๋๊ฐ ๋ ๋ก์ฐ๋ ๋ฒจ ์ธ์ด๋ฅผ ์ ๋ฐฐ์์ ๊ทธ๋. ์ง์ ์๋ก์ด ์ธ์ด๋ค ๋ง๋ค์ด ๋ณด๋ฉด ๋จ... ๊ทธ๋ผ ์ ๋ฐ๊ฑฐ ๋ค ์ดํด๊ฐ. ๊ทธ๋ฐ๋ฐ ๋ ๊ตณ์ด ์ถ์ฒ ์ํจ. ํ๋ ์ฌ๋ ๋ดค๋๋ฐ ใ ใ ใ ๋ป์งํด๋ ์๋ฌด๋ ์ ์์์ค.
ํ์ด์ฌ ํด๋ณด๊ธดํ๋๋ฐ ํ์ด์ฌ์ ์์ ์์ฐ๋๋ผ๊ณ ๋ ๋ก์ฐ๋ ๋ฒจ์ ์ํ์ด - dc App
๋ง๋ ๋๋คํํ ๊ฐ์ ๋ฐ์ ธ๋ณด์ธ์
๋ฐ๋์ค ๋ฆฌ์น๋ผ๋ฉฐ? ์น๊ตฌํํ ๋ฌผ์ด๋ณด๋๊น ์ํํ ๊ฐ์ ๋ฐ์ง๋ ์๋ง ์๊ฐ ๋ง๋ค๋ค๊ฐ ์ข ์ค์ํ๊ฒ์๋๊ฐ ์ถ์ด - dc App
๋ฌธ๋ฒ์ ์ธ์ฐ๋ ์๋ฐ์ ์์. ๊ฐ๋ ์ฑ์ ์ฐ์ ํ๋ค ๋ณด๋ ์ผ๊ด์ฑ์ด ์์ ๋๋ ๋ง์์
๋น
https://stackoverflow.com/questions/16407540/why-does-the-for-loop-use-a-semicolon/16407701#16407701
https://softwareengineering.stackexchange.com/questions/195642/why-are-semicolons-and-commas-interchanged-in-for-loops
๊ทธ๋ฌ๊ฒ ์ ํท๊ฐ๋ฆฌ๊ฒ for๋ฌธ ์์ ;์ ์ธ๊น ๊ทธ๋ฅ , ์จ๋ ๋ ๊ฑฐ ๊ฐ์๋ฐ
for (int i = 0, j = 1; i <= 10; i++) , ๋ ์ด๋ฏธ ์ฌ๋ฌ๊ฐ ๋์ดํ ๋ ์ฌ์ฉํ๋๊น ์ธ์๊ฐ ์๊ณ , ๋ค์ํ ์ ๋ค ์ค์์ ํ์์ ; ๋ฅผ ๊ตฌ๋ฌธ ๋์ ๊ตฌ๋ถ์๋ก ์ฌ์ฉํ๊ณ ์์ผ๋๊น ์ด๊ฑธ ์ฐ๋ฉด ๋ค๋ฅธ ๊ตฌ๋ถ์๋ฅผ ๋ ์ ํ ํ์๊ฐ ์์ง์์๊น๋ผ๋ ์๊ฐ์ด์์ ๊ฒ ๊ฐ์๋ฐ,
int a = 1; // 1๋ฒ์งธ ๊ตฌ๋ฌธ int b = 1: // 2๋ฒ์งธ ๊ตฌ๋ฌธ ๊ตฌ๋ฌธ๋ง๋ค ; ์ผ๋ก ๊ตฌ๋ถ์ ํ๋๋ฐ, for(์ฒซ๋ฒ์งธ ๊ตฌ๋ฌธ; ๋๋ฒ์งธ ๊ตฌ๋ฌธ; ์ธ๋ฒ์งธ ๊ตฌ๋ฌธ) ์ผ๋ก ์๊ฐํ๋ฏ