방법은 아래와 같다.
1. 공통된 절차를 각 분기점 내부에 넣는다.
2. 분기점에서 짧은 절차부터 실행하게 if문을 작성한다.
3. 짧은 절차가 끝나면 return(함수)이나 break(for문)로 중단한다.
4. else를 제거한다.(이 때 중첩 하나가 제거된다.)
function test() {
let result = '';
if(a){
if(b){
result = 'c';
}
}
else{
result = 'a';
}
result += b;
console.log(result);
}
// 1. 공통된 절차를 각 분기점 내부에 넣는다. (result += b; console.log(result)
function test() {
let result = '';
if(a){
if(b){
result = 'c';
}
result += b;
console.log(result);
}
else{
result = 'a';
result += b;
console.log(result);
}
}
// 2. 분기점에서 짧은 절차부터 실행하게 if문을 작성한다. (!a, if문 뒤집기)
function test() {
let result = '';
if(!a){
result = 'a';
result += b;
console.log(result);
}
else{
if(b){
result = 'c';
}
result += b;
console.log(result);
}
}
// 3. 짧은 절차가 끝나면 return(함수)이나 break(for문)로 중단한다.
function test() {
let result = '';
if(!a){
result = 'a';
result += b;
console.log(result);
return
}
else{
if(b){
result = 'c';
}
result += b;
console.log(result);
}
}
// 4.else를 제거한다.(이 때 중첩 하나가 제거된다.)
function test() {
let result = '';
if(!a){
result = 'a';
result += b;
console.log(result);
return
}
if(b){
result = 'c';
}
result += b;
console.log(result);
}
JS뿐 아니라 어떤 언어를 쓰던 들여쓰기 하나를 없앨 수 있다는 점에서 좋은 테크닉인 것 같다.