컴퓨터/잡지식

if 릭펙토링 - 중첩문 줄이기 코드 테크닉

ya_ya 2022. 2. 21. 20:31
반응형

1. if문 다음에 나오는 공통된 절차를 각 분기점 내부에 넣는다. --> 공통된 절차는 조건에 상관없이 무조건 실행 되어야 하므로.

<전>

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;
  }
}

2. 분기점에서 짧은 절타부터 실행하게 if문을 작성한다. --> if와 else위치를 서로 바꿔주기 위해서
원래 if(a) --> if(!a)로 고침.

function test() {
  let result = '';
  if(!a) {
    result = 'a';
    result += 'b';
    return result;
  }
  else {
    if(!b) {
    result = 'c';
    }
    result += 'b';
    return result;
  }
}

3. 짧은 절차가 끝나면 return; 이나 break로 중단한다.

4.else를 제거한다.(중첩하나가 제거된다.) --> 위의 if문이 실행되면 return; 아나 break를 통해서 실행이 종료되기 때문에 else가 필요없어진다.

function test() {
  let result = '';
  if(!a) {
    result = 'a';
    result += 'b';
    return result;
  }
  if(!b) {
   result = 'c';
  }
  result += 'b';
  return result;
}

중첩된 if문의 깊이를 하나 줄인 것을 확인할 수 있다.

<전>

function test() {
  let result = '';
  if(a) {
    if(!b) {
      result = 'c';
    }
  }
  else {
    result = 'a';
  }
  result += 'b';
  return result;
}

<후>

function test() {
  let result = '';
  if(!a) {
    result = 'a';
    result += 'b';
    return result;
  }
  if(!b) {
   result = 'c';
  }
  result += 'b';
  return result;
}

가독성이 훨씬 좋아졌다.

반응형