2014-10-18 3 views
0
public boolean percentDepreciatedOutOfRange() { 
    if (percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX) { 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

위의 코드는 else 문없이 작성하고 if 문 다음에 return false;을 가질 수 있으며 여전히 동일한 결과를 얻을 수 있습니까? 그렇다면 왜? 이것이 의미하는 것입니다.부울 및 반환

public boolean percentDepreciatedOutOfRange() { 
    if (percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX) { 
     return true; 
    } 
    return false; 
} 
+3

예프. 둘 다 똑같습니다. – TheLostMind

답변

4

당신은 더 읽을 수

public boolean percentDepreciatedOutOfRange() { 
    return percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX); 
} 

를 작성해야합니다.

과 같은 문구를 피하려면 if가 표현식 주위에 노이즈를 추가하기 때문입니다.

이렇게 합법적 인 이유는 if 식과 메서드의 반환 형식을 평가할 때 부울 형식이 동일하기 때문입니다.

1

return은 실제로 함수 (메소드)를 종료하기 때문에.

if을 입력하지 않으면 나머지 코드가 정상적으로 실행됩니다.

booleanreturns의 기능이 끝날 때 return false이되었으므로 마지막까지 실패했습니다.

당신은 그것으로 재 작성 수 :

public boolean percentDepreciatedOutOfRange() { 
    if (percentDepreciated < DEPRECIATION_MIN) { 
     return true; 
    } 
    if (percentDepreciated > DEPRECIATION_MAX) { 
     return true; 
    } 

    return false; 
} 

는 방법의 테스트를 명확하게 진술하십시오.

0

또 다른 방법은 내가 좋아하는 :

  1. 기본 값으로 1 문으로 반환 변수를 정의.
  2. 변경 다양한 비즈 논리
  3. 반환 변수 값 (단일 return 문)

    공공 부울 percentDepreciatedOutOfRange() { 부울 상태 = 거짓의 방법에서 변수; status = percentDepreciated < DEPRECIATION_MIN || percentDepreciated> DEPRECIATION_MAX; 반송 상태; }