[JS] if문 중첩 줄이기

KJA·2022년 7월 12일
0

기존 코드

const test = (event) => {
    if (operator) {
        if (!secondNumber) {
            $result.value = '';
        }
        secondNumber += event.target.textContent;
    } else {
        firstNumber += event.target.textContent;
    }
    $result.value += event.target.textContent;
};

1. 공통된 절차를 각 분기점 내부에 넣는다

if문 다음에 나오는 공통된 절차 $result.value += event.target.textContent; 를 각 분기점 내부에 넣습니다.

const test = (event) => {
    if (operator) {
        if (!secondNumber) {
            $result.value = '';
        }
        secondNumber += event.target.textContent;
        $result.value += event.target.textContent; // 안으로 넣음
    } else {
        firstNumber += event.target.textContent;
        $result.value += event.target.textContent; // 안으로 넣음
    }
};

2. 분기점에서 짧은 절차부터 실행하게 if문을 작성합니다.

else 부분이 더 짧기 때문에 서로 바꿔주고, operator부분에 !를 붙여줍니다.

const test = (event) => {
    if (!operator) { // ! 붙임
        firstNumber += event.target.textContent;
        $result.value += event.target.textContent;
    } else {
        if (!secondNumber) {
            $result.value = '';
        }
        secondNumber += event.target.textContent;
        $result.value += event.target.textContent;
    }
};

3. 짧은 절차가 끝나면 return(함수의 내부의 경우)이나 break(for문 내부의 경우)로 중단한다.

const test = (event) => {
    if (!operator) {
        firstNumber += event.target.textContent;
        $result.value += event.target.textContent;
      	return; // return 추가, return 으로 함수를 종료하므로 뒤에 else가 필요없음
    } else {
        if (!secondNumber) {
            $result.value = '';
        }
        secondNumber += event.target.textContent;
        $result.value += event.target.textContent;
    }
};

4. else를 제거한다.

최종

const test = (event) => {
    if (operator) {
        firstNumber += event.target.textContent;
        $result.value += event.target.textContent;
    } // else 제거함
    if (!secondNumber) {
        $result.value = '';
    }
    secondNumber += event.target.textContent;
    $result.value += event.target.textContent;
};

요약
1. 공통된 절차를 각 분기점 내부에 넣는다.
2. 분기점에서 짧은 절차부터 실행하게 if문을 작성합니다.
3. 짧은 절차가 끝나면 return(함수의 내부의 경우)이나 break(for문 내부의 경우)로 중단한다.
4. else를 제거한다.

0개의 댓글