✏️ Javascript
if문 중첩 줄이기
category
✏️ Javascript
date
thumbnail
slug
If문-중첩-줄이기
author
status
Public
tags
summary
type
Post
if문 중첩 제거 방법
- if문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다.
- 분기점에서 짧은 절차부터 실행하게 if문을 작성한다.
- 짧은 절차가 끝나면 return(함수 내부의 경우)이나 break(for문 내부의 경우)로 중단한다.
- else를 제거한다.(이때 중첩 하나가 제거된다.)
- 다음 중첩된 분기점이 나오면 1~4의 과정을 반복한다.
const onClickNumber = (event) => {
if (operator) { // operator가 있다.
if (!numTwo) { // operator가 있는데 numTwo는 없다.
$result.value = '';
}
// operator가 있다. (numTwo가 있다.)
numTwo += event.target.textContent;
} else {
// 비어있다
numOne += event.target.textContent;
}
// operator가 있거나 없거나
$result.value += event.target.textContent;
};
해당 코드에 if문이 중첩되어 있다. 이를 줄여보자.
const onClickNumber = (event) => {
if (!operator) { // operator가 없다.
numOne += event.target.textContent;
$result.value += event.target.textContent;
return;
}
if (!numTwo) { // numTwo가 없다.
$result.value = '';
}
numTwo += event.target.textContent;
$result.value += event.target.textContent;
};
또 다른 예시
function test() {
let result = '';
if (a) {
if (!b) {
result = 'c';
}
} else {
result = 'a';
}
result += 'b';
return result;
}
- if문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다.
function test() {
let result = '';
if (a) {
if (!b) {
result = 'c';
}
result += 'b';
return result;
} else {
result = 'a';
result += 'b';
return result;
}
}
- 분기점에서 짧은 절차부터 실행하게 if문을 작성한다.
function test() {
let result = '';
if (!a) {
result = 'a';
result += 'b';
return result;
} else {
if (!b) {
result = 'c';
}
result += 'b';
return result;
}
}
- 짧은 절차가 끝나면 return(함수 내부의 경우)이나 break(for문 내부의 경우)로 중단한다.
function test() {
let result = '';
if (!a) {
result = 'a';
result += 'b';
return result; // 원래 return이 있었음. 해당 과정에서 더 작업할 필요x
} else {
if (!b) {
result = 'c';
}
result += 'b';
return result;
}
}
- else를 제거한다.(이때 중첩 하나가 제거된다.) ⇒ 중첩 제거 완료
function test() {
let result = '';
if (!a) {
result = 'a';
result += 'b';
return result;
}
if (!b) {
result = 'c';
}
result += 'b';
return result;
}