더북(TheBook)

numTwo 값이 있는 경우에 연산자를 클릭하면 numOne + numTwo의 계산 결과를 numOne 변수에 저장하고 numTwo 변수를 비워 놓으면 연이어 계산할 수 있지 않을까요? 예를 들어, 1 + 2 + 4를 계산한다면 먼저 1 + 2를 계산해 3이 되고, 그다음 3 + 4를 계산하게 됩니다. 두 번째 +를 눌렀을 때 operator에는 +를 저장하고, 기존 numOnenumTwo의 결과인 3은 numOne에 저장한 후 numTwo는 비워 두는 것이죠. 그다음 4를 누르면 비워 둔 numTwo에 저장합니다. 이제 =를 누르면 3과 4가 더해집니다. 이 과정을 표로 정리하면 다음과 같습니다.

버튼 순서

1

+

2

+

4

=

numOne

1

1

1

3

3

7

operator

+

+

+

+

numTwo

2

4

$result

1

 

2

3

4

7

순서도에 따라 코드를 바꿔 보겠습니다. 계산 결과를 구하는 함수(#calculate의 이벤트 리스너)를 calculate 변수로 분리합니다. calculate 함수가 계산한 후(switch 문 부분) numOne 변수에 계산 값을 저장하고 operatornumTwo 변수를 비워 놓게 수정합니다. 그러면 두 번째 연산자 버튼을 클릭할 때(onClickOperator), calculate 함수를 재사용할 수 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.