개발일기

#3-2 계산기(+α 버전)

세고래 2021. 7. 2. 21:33

※소소한 개인 프로젝트 기록입니다.

1) 과정

2021.06.27 - [개발일기] - #3-1 계산기 에 이은 프로젝트입니다.

 

#3-1 계산기

※소소한 개인 프로젝트 기록입니다. 1) 과정 이번 프로젝트는 '계산기'이다. 왜 3-1 이냐면, 현재 코드까지는 오직 두개의 수만 계산할 수 있기 때문! 이번에도 역시나 'Zero cho'님의 강의에서 아이

sebada.tistory.com

이전 글에서 언급한 계산기 응용 버전이다.

코드를 많이 수정한 것은 아니고,

이전 버전이 오직 숫자 2개만 연산이 가능했다면,

이번엔 연달아 숫자를 받아서 연산하는 것이나, = 를 눌러 나온 최종 값에 또 다른 연산을 시작하는

방식으로 여러개의 수를 계속해서 연산할 수 있는 계산기를 만들었다.

 

const operCal=(val)=>{
    if(!numOne) {
        alert('숫자를 먼저 입력해주세요.');
        return;
    }
    else if(numTwo){ 
        switch(operator){
        case '=':
            break;
        case '+':
            numOne=Number(numOne)+Number(numTwo);
            numTwo="";
            break;
        case '-':
            numOne=numOne-numTwo;
            numTwo="";
            break;
        case 'x':
            numOne=numOne*numTwo;
            numTwo="";
            break;
        case '/':
            numOne=numOne/numTwo;
            numTwo="";
            break;
    }
}
    operator=val;
    operView.value=val;
};

내가 중점적으로 수정한 코드의 부분이다.

해당 함수는 +,-,x,-,= 기호가 계산기에서 입력되면 실행되는 함수이다.

numTwo(계산할때 두번째 오는 수)가 이미 존재한다는 말은,

이전에 어떤 연산자가 한 번 입력되었지만 (numTwo가 오기 위해서는 필수적으로 연산자가 입력되어야 함)

또 다른 연산자가 입력되었다는 말이다.

 

방금 입력된 연산자를 val이라고 한다면,

val가 입력되기 전까지의 연산을 다 처리해주고, 그 연산 결과값을 numOne으로 옮겨놓으면

다른 별도의 변수없이 연속적인 계산이 가능하다!

즉, 이전에 저장된 연산자 operator를 확인해서 numOne과 numTwo의 연산을 마치고

그 값을 numOne에 넣은 뒤 numTwo를 초기화해주면 된다.

이렇게 되면 이 다음에 입력될 값이 numTwo에 들어가서 다음 연산 또한 이와 같은 과정으로 연산할 수 있게 된다.

 

연산을 마치면, 연산자 변수에 현재 입력된 연산자 val를 입력해주면 된다.

 

그렇게 크게 고친 부분은 없지만, 나름 응용 버전이라 생각해서..!

코드와 함께 포스팅 해본다 키키

2) 결과

 

3) 참고자료

https://thebook.io/080270/

 

더북(TheBook): Let's Get IT 자바스크립트 프로그래밍

 

thebook.io

- zero cho 님의 저서

728x90

'개발일기' 카테고리의 다른 글

#4 숫자야구  (0) 2021.07.04
#3-1 계산기  (0) 2021.06.27
#2 쿵쿵따 게임  (0) 2021.06.25
#1 로또 번호 추첨기  (0) 2021.06.07