더북(TheBook)

if 문 다섯 줄을 코드 한 줄로 압축했습니다. 조건에 불 산술 연산을 넣었으니 의미는 그대로입니다. 기본적으로 ‘드 모르간의 법칙(De Morgan’s Laws)’을 적용해 조건문을 부정했습니다. 자주 사용하게 될 이 유명한 법칙을 간단히 정의해 보겠습니다.

!A && !B == !(A || B) // 참
!A || !B == !(A && B) // 참

조건문은 이보다 더 복잡할 수 있습니다. 만약 그렇다면 조건문을 더 작은 덩어리로 분할하는 방향을 고려해야 합니다. 변수에 의미 있는 이름을 지어 각각 조건 덩어리로 표현하는 것이죠. 아래 예제를 봅시다.

boolean isValid() {
    boolean isValidMissions = missions >= 0;
    boolean isValidName = name != null && !name.trim().isEmpty();
    return isValidMissions && isValidName;
}

경험상 조건문을 세 개 이상 합칠 때는 위와 같은 간소화를 고려해야 합니다. 조건문 덩어리를 다른 곳에서도 써야 하면 이어지는 절인 1.4 불 표현식 간소화에서 설명하는 방법대로 개별 메서드에 넣는 것이 좋습니다.

위에 설명한 해법은 반환 타입이 불일 때만 동작한다는 것을 잊지 마세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.