for ๋ฃจํ
for ๋ฃจํ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ ๋ถ๋ถ์ ์์๋๋ก ๋ค์๊ณผ ๊ฐ์ ๋จ๊ณ๋ฅผ ์ฒ๋ฆฌํจ
- ์กฐ๊ฑด ๊ฒ์ฌ์ ์ฌ์ฉํ ์นด์ดํฐ ๊ฐ์ ์ด๊ธฐํ
- ๋ฃจํ๋ฅผ ์งํํ ๊ฒ ์ธ์ง ์กฐ๊ฑด์ ๊ฒ์ฌ
- ๋ฃจํ ๋ชธ์ฒด๋ฅผ ์ํ
- ์นด์ดํฐ ๊ฐ ๊ฐฑ์
์ด๊ธฐํ, ์กฐ๊ฑด ๊ฒ์ฌ, ๊ฐฑ์ ์ ์ฒ๋ฆฌํ๋ for ๋ฃจํ์ ์ธ ์ ์ด ๋ถ๋ถ์ ๊ดํธ๋ก ๋ฌถ์ฌ ์๋ค. ์ด๋ค์ ๊ฐ๊ฐ ํ๋์ ํํ์์ด๋ฉฐ, ์ธ๋ฏธ์ฝ๋ก ์ ์ํด ๋ถ๋ฆฌ๋์ด ์๋ค. ์ ์ด ๋ถ๋ถ ๋ค์ ์ค๋ ๊ตฌ๋ฌธ์ ๋ฃจํ ๋ชธ์ฒด๋ผ ํจ
for(initialization;test_expression;update_expression)
body
์ด๊ธฐํ๋ ์ฒ์์ ๋จ ํ ๋ฒ๋ง ์ํ
test_expression์ ๋ฃจํ ๋ชธ์ฒด body๋ฅผ ์คํํ ๊ฒ ์ธ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์
์ฐธ-๊ฑฐ์ง์ ๋น๊ตํ๋ ๊ด๊ณ์๋ฟ๋ง ์๋๋ผ, ์ด๋ ํ ํํ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
C++์ ์ด๋ฌํ ํํ์์ boolํ์ผ๋ก ๋ณํํจ. 0 ๊ฐ์ ๊ฐ์ง ํํ์์ผ ๊ฒฝ์ฐ boolํ ๊ฐ false๋ก ๋ณํ๋๊ณ ๋ฃจํ๊ฐ ์ข ๋ฃ, ํํ์์ด 0์ด ์๋ ๋ค๋ฅธ ์๋ก ํ๊ฐ๋๋ฉด boolํ ๊ฐ true๋ก ๋ณํ๋๊ณ ๋ฃจํ๊ฐ ๊ณ์ ์งํ
for ๋ฃจํ๋ ์ง์ ์กฐ๊ฑด (entry_condition) ๋ฃจํ์ด๋ค
์กฐ๊ฑด ๊ฒ์ฌ ํํ์์ด ๊ฑฐ์ง์ผ๋ก ํ๊ฐ๋๋ฉด ๋ฃจํ ๋ชธ์ฒด๋ ๊ฒฐ์ฝ ์ํ๋์ง ์๋๋ค
update_expression์ ๋ฃจํ ๋ชธ์ฒด๊ฐ ์คํ๋๊ณ ๋์ ๋ฃจํ ์ฃผ๊ธฐ์ ๋์์ ํ๊ฐ๋จ. ์ผ๋ฐ์ ์ผ๋ก ๋ฃจํ ์ฃผ๊ธฐ์ ์๋ฅผ ์ถ์ ํ๋ ๋ณ์์ ๊ฐ์ ์ฆ๊ฐ์ํค๊ฑฐ๋ ๊ฐ์์ํด. ์ด๋ ํ ํํ์๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
C++์์์ for ๊ตฌ๋ฌธ
for(for_init_statement condition;expression)
statement
for_init_statement๊ฐ ๊ตฌ๋ฌธ์ด๊ณ ์์ฒด์ ์ธ๋ฏธ์ฝ๋ก ์ด ์์ผ๋ฏ๋ก ๋ฌธ์ ์์
for_init_statement์ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ๊ทธ ๋ณ์๋ฅผ for ๊ตฌ๋ฌธ ์์์๋ง ์กด์ฌํ๊ณ for ๋ฃจํ๋ฅผ ๋ฒ์ด๋๋ฉด ์๋ฉธ๋๋ค.
์ฆ๊ฐ ์ฐ์ฐ์(++)์ ๊ฐ์ ์ฐ์ฐ์(--)
์ฆ๊ฐ ์ฐ์ฐ์์ ๊ฐ์ ์ฐ์ฐ์๋ ๋ ๋ค ์ ๋์ด ๋ฐฉ์๊ณผ ์ ๋ฏธ์ด ๋ฐฉ์์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ
์ ๋์ด ๋ฐฉ์์ ++x, ์ ๋ฏธ์ด ๋ฐฉ์์ x++์ ๊ฐ์ด ์ฌ์ฉ
์ ๋์ด : ++x, x์ ๊ฐ์ ๋จผ์ ์ฆ๊ฐ
์ ๋ฏธ์ด : x++, x๊ฐ ํ์ฌ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ผ๋ก ํํ์์ ๊ฐ์ ๋จผ์ ํ๊ฐํ ํ, x์ ๊ฐ์ ๋์ค์ ํ๊ฐ
๋ถ์ํจ๊ณผ์ ์ํ์ค ํฌ์ธํธ
๋ถ์ํจ๊ณผ (side effect)
์์์ ํ๊ฐํ ๋ ๋ณ์์ ์ ์ฅ๋์ด ์๋ ๊ฐ๊ณผ ๊ฐ์ ๊ฒ์ด ๋ณ๊ฒฝ๋ ๋ ์ผ์ด๋๋ ํจ๊ณผ๋ฅผ ๋งํจ
์ํ์ค ํฌ์ธํธ
ํ๋ก๊ทธ๋จ์ ์คํ์ด ๋ค์ ๋จ๊ณ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ๋ชจ๋ ๋ถ์ ํจ๊ณผ๋ค์ด ํ์คํ๊ฒ ํ๊ฐ๋๋ ํฌ์ธํธ
c++์์ ๊ตฌ๋ฌธ์ ์๋ ์ธ๋ฏธ์ฝ๋ก ์ ์ํ์ค ํฌ์ธํธ๋ฅผ ํ์ํจ
์ ๋์ด ๋ฐฉ์๊ณผ ์ ๋ฏธ์ด ๋ฐฉ์
ํด๋์ค์ ๊ฒฝ์ฐ์ ์ ๋์ด ๋ฒ์ ์ด ์ ๋ฏธ์ด ๋ฒ์ ๋ณด๋ค ๋ ํจ์จ์ ์ธ ์ด์
์ ๋ฏธ์ด ๋ฒ์ ์ ๋จผ์ ๊ฐ์ ๋ณต์ฌ๋ณธ์ ๋ง๋ค๊ณ , ๋ณต์ฌ๋ณธ์ ๊ฐ์ ์ฆ๊ฐ์ํค๊ณ , ๊ทธ ๋ณต์ฌ๋ณธ์ ๋ฆฌํดํ๋ ๋ฐฉ์์ผ๋ก ๋์ํจ
๋ด์ฅ ๋ฐ์ดํฐํ์ ๋ํด์๋ ์ด๋ ๋ฐฉ์์ ์ฌ์ฉํด๋ ๊ฑฐ์ ์ฐจ์ด๊ฐ ์์
์ฆ๊ฐ ์ฐ์ฐ์๋ ๊ธฐ๋ณธ ๋ณ์์ ๋ํด์๋ง์ด ์๋๋ผ ํฌ์ธํฐ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
์ด ์ฐ์ฐ์๋ค์ *์ฐ์ฐ์์ ๊ฒฐํฉํ์ฌ ์ฌ์ฉํจ์ผ๋ก์จ ํฌ์ธํฐ๊ฐ ์ง์ํ๋ ๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅ
์ ๋ํ ์ฆ๊ฐ, ์ ๋ํ ๊ฐ์, ๋ด์ฉ ์ฐธ์กฐ ์ฐ์ฐ์๋ ์ฐ์ ์์๊ฐ ๊ฐ๊ณ , ์ค๋ฅธ์ชฝ์์ ์ผ์ชฝ์ผ๋ก ๊ฒฐํฉํจ
์ ๋ฏธํ ์ฆ๊ฐ, ์ ๋ฏธํ ๊ฐ์ ์ฐ์ฐ์๋ ์ฐ์ ์์๊ฐ ๊ฐ๊ณ , ์ ๋ํ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋๋ค. ๋ํ ์ด ๋ ์ฐ์ฐ์๋ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฒฐํฉํจ
*++pt; //++๊ฐ pt์ ๋จผ์ ์ ์ฉ ํ pt์ ์๋ก์ด ๊ฐ์ *๊ฐ ์ ์ฉ
*pt++; //์๋ ์ฃผ์๋ฅผ ์ฐธ์กฐํ ๋ค ํฌ์ธํฐ ์ฆ๊ฐ