조건 분기 : 미궁처럼 복잡한 분기 처리를 무너뜨리는 방법

hyyyynjn·2024년 4월 4일
0

조건 분기 : 미궁처럼 복잡한 분기 처리를 무너뜨리는 방법

조건 분기와 관련된 코드 개선방법에 대해 알아보자.

  • if 조건문, switch 조건문


6.1 조건 분기가 중첩되어 낮아지는 가독성

if (condition1) {
  // do something1
  if (condition2) {
    // do something2
    if (condition3) {
      // do something3
    }
    // do other2
  }
  // do other3
}

if 중첩 구조

  • 조건문 범위를 찾기 매우 힘들어진다 -> 로직 이해하는데 많은 시간이 걸린다
  • 사양 변경시 더 힘들어진다

가독성이 나쁜 코드는 팀 전체 개발의 생산성을 저하시킨다. (정말 와닿는 말이다)

6.1.1 조기 리턴으로 중첩 제거하기

early return(조기 리턴)은 조건을 만족하지 않을 경우 곧바로 리턴하는 방법이다.

  • 조기 리턴 형태로 변경하려면, 원래 조건을 반전시켜야 한다.
  • if 중첩 구조를 제거할 수 있어서 가독성을 높인다.
  • 조건 로직과 실행 로직을 분리할 수 있다 -> 가독성을 높인다 (앞부분에 조건 로직, 뒷 부분에 실행 로직)
  • 새로운 요구사항이 추가되어도 간단하게 조건 또는 실행 로직을 추가할 수 있다.
if (!condition1) {
  return;
}
if (!condition2) {
  return;
}
if (!condition3) {
  return;
}
if (!newCondition4) { // 새로운 요구 사항
  return;
}

// do something
// do something new

6.1.2 가독성을 낮추는 else 구문도 조기 리턴으로 해결하기

int value = 0;
if (condition1) {
  value = 1;
} else if (condition2) {
  value = 2;
} else if (condition3) {
  value = 3;
} else {
  value = 4;
}

return value;

else 구문도 가독성을 낮추는 원인 중 하나이다.
특히나 중첩된 if 조건문 내부에 else 구문까지 섞이면 가독성이 현저히 낮아진다.

if (condition1) {
  return 1;
} 
if (condition2) {
  return 2;
} 
if (condition3) {
  return 3;
} 

return 4;

else 구문도 early return 을 사용하도록 변경해서 가독성을 높일 수 있다



6.2 switch 조건문 중복

6.3 조건 분기 중복과 중첩

6.4 자료형 확인에 조건 분기 사용하지 않기

6.5 인터페이스 사용 능력이 중급으로 올라가는 첫걸음

6.6 플래그 매개변수

0개의 댓글