계산기 만들기 | 결과 계산하기, 초기화

uoah·2023년 2월 7일

Training

목록 보기
12/20
post-thumbnail

결과 계산하기

document.querySelector('#calculate').addEventListener('click', () => {
  if (numTwo) {
    switch (operator) {
      case '+':
        $result.value = parseInt(numOne) + parseInt(numTwo);
        break;
      case '-':
        $result.value = numOne - numTwo;
        break;
      case '*':
        $result.value = numOne * numTwo;
        break;
      case '/':
        $result.value = numOne / numTwo;
        break;
      default:
        break;
    }
  } else {
    alert('숫자를 먼저 입력하세요.');
  }
});

문자열의 경우 + 연산자 사용시 문자열로 나오기 때문에 parseInt 를 이용하여 숫자열로 변환하여 계산한다.
나머지 연산자 (-, *, /) 의 경우 문자열도 숫자열로 자동 변환하기 때문에 parseInt 를 입력하지 않아도 된다.


초기화 하기

document.querySelector('#clear').addEventListener('click', () => {
  numOne = '';
  operator = '';
  numTwo = '';
  $operator.value = '';
  $result.value = '';
});

입력값을 초기와 같도록 입력한다.


📍 실습

위의 swich 문을 if 문으로 바꿔 보자.

swich문

document.querySelector('#calculate').addEventListener('click', () => {
  if (numTwo) {
    switch (operator) {
      case '+':
        $result.value = parseInt(numOne) + parseInt(numTwo);
        break;
      case '-':
        $result.value = numOne - numTwo;
        break;
      case '*':
        $result.value = numOne * numTwo;
        break;
      case '/':
        $result.value = numOne / numTwo;
        break;
      default:
        break;
    }
  } else {
    alert('숫자를 먼저 입력하세요.');
  }
});

if문

document.querySelector('#calculate').addEventListener('click', () => {
	if (numTwo) {
    	if (operator === '+') {
        	$result.value = parseInt(numOne) + parseInt(numTwo);
        } else if (operator === '-'){
        	$result.value = parseInt(numOne) - parseInt(numTwo);     
        } else if (operator === '*'){
        	$result.value = parseInt(numOne) * parseInt(numTwo);
        } else if (operator === '/'){
        	$result.value = parseInt(numOne) / parseInt(numTwo);
        } else {
        	alert ('숫자를 먼저 입력하세요.');
        }
    }
});                                                      

0개의 댓글