중첩 if문 줄이기

노영완·2023년 9월 8일

중첩 if문 규칙
1. if 문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다.
2. 분기점에서 짧은 절차부터 실행하게 if 문을 작성한다.
3. 짧은 절차가 끝나면 return(함수 내부의 경우)이나 break(for 문 내부의 경우)로 중단한다.
4. else를 제거한다(이때 중첩 하나가 제거된다).
5. 다음 중첩된 분기점이 나오면 1~4의 과정을 반복한다.

// 예시 아래 코드의 중첩 if문 줄이기
const onClickNumber = (event) => {
  if (operator) {
    if (!numTwo) {
      $result.value = '';
    }
    numTwo += event.target.textContent;
  } else {
    numOne += event.target.textContent;
  }
  $result.value += event.target.textContent;
};
// if 문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다.
const onClickNumber = (event) => {
  if (operator) {
    if (!numTwo) {
      $result.value = '';
    }
    numTwo += event.target.textContent;
    $result.value += event.target.textContent;
  } else {
    numOne += event.target.textContent;
    $result.value += event.target.textContent;
  }
};
//  $result.value += event.target.textContent를 각 분기점 안에 넣었다.
// 분기점에서 짧은 절차부터 실행하게 if 문을 작성한다.
const onClickNumber = (event) => {
  if (!operator) {
    numOne += event.target.textContent;
    $result.value += event.target.textContent; // 이부분
  } else {
    if (!numTwo) {
      $result.value = '';
    } // 이부분
    numTwo += event.target.textContent;
    $result.value += event.target.textContent;
  }
};
// 분기점이 짧은데를 확인 후 바꾼다. 바꾸었으니 if의 조건식은 반대가 된다.
// 짧은 절차가 끝나면 return(함수 내부의 경우)이나 break(for 문 내부의 경우)로 중단한다.
// else를 제거한다(이때 중첩 하나가 제거된다).
const onClickNumber = (event) => {
  if (!operator) {
    numOne += event.target.textContent;
    $result.value += event.target.textContent;
    return; // 이 부분에 return 추가
  }
  // 이 아래로는 operator가 존재하는 경우에만 실행됨
  if (!numTwo) {
    $result.value = '';
  }
  numTwo += event.target.textContent;
  $result.value += event.target.textContent;
};
// else를 제거한다 왜냐 평상시 조건식 operator가 있으니깐 이니 else가 필요 없다.

0개의 댓글