JAVA#12 _ ํจ์
#1 ํจ์๋?
์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ ํ๋์ ์ฝ๋ ๋ธ๋ญ
์์ ์ ์ธ๋ถ ์ฝ๋๊ฐ ํธ์ถํ ์ ์๋ 'ํ์ ํ๋ก๊ทธ๋จ'
#1-1 ํจ์ ๋ธ๋ญ ๊ตฌ๋ถ
ํจ์๋ผ๋ฆฌ๋ {} ๋ธ๋ญ ์ฝ๋๊ฐ ๊ฒน์น์ง ์์
#2 ํจ์์ 3์์
= ๋ฉ์๋ ์๊ทธ๋์ณ
1. input (= ์ ๋ ฅ๊ฐ, ์ธ์, ์ธ์, ๋งค๊ฐ๋ณ์, ํ๋ผ๋ฏธํฐ, args)
2. output (= ์ถ๋ ฅ๊ฐ, ๊ฒฐ๊ณผ๊ฐ, return, ๋ฆฌํด๊ฐ, ๋ฐํ๊ฐ)
3. ๊ธฐ๋ฅ → ํจ์๋ช → ์์ ์๋ ๊ธฐ๋ฅ์ ์ ์ถํ ์ ์๊ฒ ์ง์ ํด์ผํจ
#3 ์ ์ง๋ณด์
"์ ์ง๋ณด์์ ๋ถ๋ฆฌํ๋ค." → Why? ๊ฐ์ ์ฝ๋๊ฐ ์ฌ๊ธฐ์ ๊ธฐ ์ค๋ณต๋์๊ธฐ ๋๋ฌธ.
โคท ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํ๋๊ฒ ๊ฐ์ฅ ๊ถ๊ทน์ ์ธ ๋ชฉํ → How? "ํจ์ํ(=๋ชจ๋ํ, ์ปดํฌ๋ํธํ, ๊ณ ๋ํ, ์ฑ๋ฅ์ต์ ํ,ใปใปใป)
#4 ์ ์ง๋ณด์์ ์ฉ์ดํ๋ ค๋ฉด!
1. ์ค๋ณต์ด ์๋ ์ฝ๋
2. ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ฉ์ด
3. ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถ
4. ๊ฐ๋ฐ ๋น์ฉ์ ์ ๊ฐ
5. ์ค๋ฅ์ ํ๊ธํจ๊ณผ๊ฐ ์ค์ด๋ฌ
#5 ํจ์ํ์ ์ฅ์
1. ๋ณ๋ ฌ์ฝ๋ฉ์ด ๊ฐ๋ฅ : ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋ฉ๊ณผ ๋ด๊ฐ ์ฝ๋ฉ์ ํ๋ ๊ฒ์ด ๊ด๊ณ ์์
2. ์ฌ์ฉ์์ ํธ๋ฆฌ์ฑ ์ฆ๊ฐ : ๊ฐ์ฉ์ฑ์ด ์ฆ๊ฐ
#6 ํจ์์ ์ ํ
์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ถ๋ฅํ ์์
์ ํ1 | ์ ํ2 | ์ ํ3 | ์ ํ4 |
input X | input O | input X | input O |
output X | output X | output O | output O |
โ ์ฝ๋ฉ์ ํ ๋์๋ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์๋ก ์ข๊ธฐ ๋๋ฌธ์, ๋ฎ์ถ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๊ณ ๋ ธ๋ ฅํ์! โ