불 표현식을 직접 반환

A Kind Dev·2023년 2월 14일
0

자바 코딩의 기술

목록 보기
5/7
post-thumbnail

메서드 반환 타입이 불일 경우 불필요한 if문을 제거하여 코드를 간소화 할 수 있다.


잘못된 코드

class Astronaut {
	
    String name;
    int missions;
    
    boolean isValid() {
    	if (misson < 0 || name == null || name.trin().isEmpty()) {
        	return false;
        } else {
        	return true;
        }
    }
}

전형적인 유효성 검사 코드. 코드에 기능상 오류는 없지만 if문을 쓸데없이 사용하여 코드가 복잡하고 읽기 어렵다.


올바른 코드

class Astronaut {
	
    String name;
    int missions;
    
    boolean isValid() {
    	return misson >= 0 && name != null && !name.trin().isEmpty();
    }
}

if문 다섯 줄을 코드 한 줄로 압축. 불을 반환할 때는 전체 항목을 if문으로 감쌀 필요 없이 아래처럼 값을 바로 반환할 수 있다.
(메소드가 isValid이기 때문에 논리적으로 true 가 되는 경우를 반환해야 하므로 논리연산자를 && 바꾸고, true가 되는 경우로 조건을 변경)

class Astronaut {
	
    boolean isValid() {
    	boolean isValidMission = misson >= 0;
        boolean isValidName = name != null && !name.trin().isEmpty();
        
        return isValidMission && isValidName;
    }
}

더 나아가 조건문을 세 개 이상 합칠 때는 위와 같은 간소화를 고려하는 것이 바람직하다. 변수에 의미 있는 이름을 지어 조건문을 더 작은 조건 덩어리로 표현한다. 또한 조건문을 다른 곳에서도 호출해야 할 경우 개별 메서드에 넣는 것이 좋다.


출처 : [자바 코딩의 기술], 사이먼 하러 외 3인, 길벗 출판사

profile
친절한 개발자

0개의 댓글