- ์์ ์ ์(0 ํฌํจ)๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ
- ์ฌ์น์ฐ์ฐ ๊ธฐํธ(โ,โ,โ๏ธ,โ)๋ฅผ ์ ๋ ฅ๋ฐ๊ธฐ
- ์์์ ์
๋ ฅ๋ฐ์ ์์ ์ ์ 2๊ฐ์ ์ฌ์น์ฐ์ฐ ๊ธฐํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ์ฐ์ ์งํํ ํ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅํ๊ธฐ
- ํค์๋: if, swich
- ์ฐ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ ํด๋น ์ค๋ฅ์ ๋ํ ๋ด์ฉ์ ์ ์ ํ์ฌ ์ถ๋ ฅ.
- ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋, ๋ฐ๋ณต์ ์ข
๋ฃ๋ฅผ ์๋ ค์ฃผ๋ โexitโ ๋ฌธ์์ด์ ์
๋ ฅํ๊ธฐ ์ ๊น์ง ๋ฌดํ์ผ๋ก ๊ณ์ฐ์ ์งํํ ์ ์๋๋ก ์์ค ์ฝ๋๋ฅผ ์์ ํ๊ธฐ
- ํค์๋: ๋ฌดํ ๋ฐ๋ณต, ์์ (์ฒ์๋ถํฐ๊ฐ ์๋ ์คํ ๋ณ๋ก ์งํํ๋ฉฐ ์์ )
- ๋ฐ๋ณต๋ฌธ: for, which
calculatorLevel2 ํด๋์ค๋ฅผ ์ ์ฉํด ๊ธฐ๋ณธ์ ์ธ ์ฐ์ฐ์ ์ํํ ์ ์๋ ๊ณ์ฐ๊ธฐ ๋ง๋ค๊ธฐ.
- ์ฌ์น์ฐ์ฐ์ ์ํ ํ, ๊ฒฐ๊ณผ๊ฐ ๋ฐํ ๋ฉ์๋ ๊ตฌํ & ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ์ปฌ๋ ์ ํ์ ํ๋๋ฅผ ๊ฐ์ง Calculator ํด๋์ค๋ฅผ ์์ฑ.
- calculatorLeve1์์ ๊ตฌํํ App ํด๋์ค์ main ๋ฉ์๋์ Calculator ํด๋์ค๊ฐ ํ์ฉ๋ ์ ์๋๋ก ์์
- App ํด๋์ค์ main ๋ฉ์๋์์ Calculator ํด๋์ค์ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๊ณ ์๋ ์ปฌ๋ ์
ํ๋์ ์ง์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ์์
- ํค์๋: ์บก์ํ
- Calculator ํด๋์ค์ ์ ์ฅ๋ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ค ์ค ๊ฐ์ฅ ๋จผ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ฉ์๋๋ฅผ ๊ตฌํํ ํ App ํด๋์ค์ main ๋ฉ์๋์ ์ญ์ ๋ฉ์๋๊ฐ ํ์ฉ๋ ์ ์๋๋ก ์์
- ํค์๋: ์ปฌ๋ ์ , "๊ฐ์ ๋ฃ๊ณ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ค"
- Enum ํ์ ์ ํ์ฉํ์ฌ ์ฐ์ฐ์๋ฅผ ๊ด๋ฆฌํ๊ณ ์ด๋ฅผ ์ฌ์น์ฐ์ฐ ๊ณ์ฐ๊ธฐ ArithmeticCalculator ํด๋์ค์ ํ์ฉ
- ์ค์, ์ฆ double ํ์
์ ๊ฐ์ ์ ๋ฌ ๋ฐ์๋ ์ฐ์ฐ์ด ์ํํ๋๋ก ๋ง๋ค๊ธฐ
- ํค์๋: ์ ๋ค๋ฆญ, ํผ์ฐ์ฐ์๋ฅผ ์ฌ๋ฌ ํ์ ์ผ๋ก ๋ฐ์ ์ ์๋๋ก ๊ธฐ๋ฅ์ ํ์ฅ
- ์ ์ฅ๋ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ค ์ค Scanner๋ก ์
๋ ฅ๋ฐ์ ๊ฐ๋ณด๋ค ํฐ ๊ฒฐ๊ณผ๊ฐ ๋ค์ ์ถ๋ ฅ
- ArithmeticCalculator ํด๋์ค์ ์ ์๊ตฌ์ฌํญ์ ๋ง์กฑํ๋ ์กฐํ ๋ฉ์๋๋ฅผ ๊ตฌํ
- ํด๋น ๋ฉ์๋๋ฅผ ๊ตฌํํ ๋ Lambda & Stream์ ํ์ฉ
- ํค์๋: ๋๋ค, ์คํธ๋ฆผ
calculatorLevel1์ ๊ฒฝ์ฐ Calculator.java๋ง์ ๋ณด๋ฉด ๋๋ฉฐ, calculatorLevel3์์ OperatorTypeEx์ ๊ฒฝ์ฐ util์ BiFuntion์ ์๋ ํด๋ณด๋ ค ํ๋๊ฒ์ด๋ ์ค ์ฌ์ฉ์ OperatorType์ด๋ค.