제로초님의 ES6 강좌를 듣던 중
if문 중첩 제거 방법이 유용하여 velog에 기록해봅니다!
- 공통된 절차를 각 분기점 내부에 넣는다.
- 분기점에서 짧은 절차부터 if문을 작성한다.
- 짧은 절차가 끝나면 return이나 break로 중단한다.
- else를 제거한다
[실습]
아래의 코드로 중첩을 제거해 보겠습니다!
//샘플 코드
function test(){
let result ='';
if(a){
if(!b){
result = 'c';
}
} else {
result = 'a';
}
result +='b';
return result;
}
function test(){
let result ='';
if(a){
if(!b){
result = 'c';
}
result +='b'; //추가
return result;//추가
} else {
result = 'a';
result +='b';//추가
return result;//추가
}
//result +='b';
//return result;
}
원래 else문에 있던 코드가 짧으니
처음 나오는 if문 내부로 옮겨 줍시다.
이때 첫 if문의 조건문에 !를 붙여주어야 합니다.
왜냐하면 옮기는 코드가 else문에 있던 코드였죠?
그렇기 때문에 !a를 해줘야 원래 로직에 맞기 때문입니다.
function test(){
let result ='';
if(!a){
result = 'a';
result +='b';//추가
return result;//추가
} else {
if(!b){
result = 'c';
}
result +='b'; //추가
return result;//추가
}
//result +='b';
//return result;
}
이미 return이 존재하기 때문에 따로 처리할 사항은 없네요.
function test(){
let result ='';
if(!a){
result = 'a';
result +='b';//추가
return result;//추가
} else {
if(!b){
result = 'c';
}
result +='b'; //추가
return result;//추가
}
}
function test(){
let result ='';
if(!a){
result = 'a';
result +='b';//추가
return result;//추가
}
if(!b){
result = 'c';
}
result +='b'; //추가
return result;//추가
}