2012-06-10 3 views
5

때로는 불필요한 코드를 작성합니다. 제 질문은 매우 간단합니다 : 다음과 같은 방법이 있습니까?범위 (분, 최대, 값) Java의 함수

/** @return true if a given value is inside the range. */ 
public static boolean range(min, max, value) 

Google에서 찾지 못했습니다. 그것은 존재하지 않기 때문입니까? 당신이 정말하는 기능을 필요로하는 경우

+4

'rangeCheck()'의 이름을 지정하지 마십시오. 오라클이 고소합니다. –

답변

3

당신은 within 방법이있는 입력 Range 클래스를 만들 수 있습니다.

FWIW, 다소 편리합니다!

+0

'> ='와'<='는 어떻게 비교할 수 있습니까? –

+0

@OpDeCirkel 선택해 주셔서 감사합니다. 방금 IDE없이 생각을하지 않고 입력했습니다! 지금 해결됨 - 건배 – Bohemian

2

음 ...

value >= min && value <= max 

을 확실히 쉽게 스스로를 쓸 수 있습니까?

+2

한편,'Math.abs()'가 존재하고 더 단순한 impl – Bohemian

+0

값> = min && value <= max는 항상 내가 사용하는 것입니다 ... 왜냐하면 나는 그것을 사용할 것이기 때문입니다 like : 35 times ... 그리고 모든 절을 위해 그것을하는 것이 짜증 스럽다 ... 고마워! –

+0

@ 아이언 조서 : 29 자입니다. 함수 호출은 23이 될 것입니다. 당신이 당신의 시간을 보낼 수있는 훨씬 더 큰 성가심이 있습니다. –

2

존재하지 않습니다. 그것을 위해

A '재치있는'장소는 수학 모듈에있을 것입니다,하지만 그것은 아주 간단하게 표현

min < value && value < max 

표현이기 때문에 그것은 조금 지나친 것 같다. 최소 및 최대가 테스트 그룹에 대해 동일 경우, 모든 테스트에 대한 귀하의 range 개체를 재사용 할 수

public class Range<T extends Comparable<T>> { 

    private final T min; 
    private final T max; 

    public Range(T min, T max) { 
     this.min = min; 
     this.max = max; 
    } 

    public boolean within(T value) { 
     return min.compareTo(value) <= 0 && max.compareTo(value) >= 0; 
    } 
} 

:

+0

Math.abs()는 간단하지만, (val <0? val * -1 : val)보다 우수합니다. –

+0

음,'abs'는 수학적으로 등가 인 Java 메소드입니다. 또한 정수를 반환합니다. 'range'는 참 또는 거짓을 반환하고 실제 수학적으로 동등한 것을 가지는 부울 테스트입니다. 실제로 실제 상황에서 값이 일부 숫자 범위 내에 있다는 테스트는 isAValidChoice (min, max, value)와 같은 문제 영역에서 더 유용한 이름을 가질 것입니다. 실제로 'min' 'max '는 아마도 isAValidChoice 메소드를 제공하는 클래스에 속하는 필드 일 것이다. – Dancrumb