728x90
반응형
단축 평가(Short-circuit Evaluation)
논리 연산자 작성 시 고려해보면 좋을 개념입니다.
/**
* 어떤 조건문이 더 좋을까?
* first() : 1초 소요
* second() : 10초 소요
*/
if ( fisrt() || second() ) {
// 1번
}
if ( second() || fisrt() ) {
// 2번
}
두 조건문은 동일한 결과를 반환하겠지만 처리되는 속도에는 차이가 날 수있다.
OR 문은 하나라도 참이면 조건을 성립한다.
1번(위) 조건문은 최소 1초만에 조건을 만족할 수 있다.
2번(아래) 조건문은 최소 10초만에 조건을 만족할 수 있다.
즉, 1번(위) 조건문이 더 빠르다.
/**
* 어떤 조건문이 더 좋을까?
* first() : 1초 소요
* second() : 10초 소요
*/
if ( fisrt() && second() ) {
// 3번
}
if ( second() && fisrt() ) {
// 4번
}
AND 문은 실패(false)의 경우를 비교해보면 된다.
3번 조건문은 최소 1초만에 조건문이 종료된다.
4번 조건문은 최소 10초만에 조건문이 종료된다.
즉, 3번 조건문이 더 빠르다.
이 처럼 논리연산자를 포함한 조건문을 작성할 때 해당 개념을 한 번 생각한 뒤 작성하거나, 리팩토링 대상으로 점검해보는 것이 좋다.
참고
728x90
반응형
'Java' 카테고리의 다른 글
[JAVA] Date -> Calendar, Calendar -> Date 변환하기 (0) | 2023.11.15 |
---|---|
[Java] PKIX path building failed 문제 해결 방법 (0) | 2023.11.07 |
[Java/스크랩] private Method 테스트 코드 작성하기 (0) | 2022.10.03 |
[Java] CMD javac - unmappable character for encoding MS949 (0) | 2022.07.23 |
[Java] 오버로딩(overloading) / 오버라이딩(overriding) (0) | 2021.08.28 |
댓글