단락 평가: Difference between revisions

From IT Wiki
(새 문서: ;Short-circuit Evaluation ;조건문에서 빠른 검사를 위해 연산자가 논리합이냐 논리곱이냐에 따라 조건의 일부만 검사하여 판정을 내리는 방식...)
 
 
Line 9: Line 9:
** ex) if(a && b && c && d) 인 경우 a부터 평가하며 b가 false인 경우 c, d를 읽지 않는다.
** ex) if(a && b && c && d) 인 경우 a부터 평가하며 b가 false인 경우 c, d를 읽지 않는다.
* OR 연산일 경우 조건 중 하나라도 True 이면 뒤의 조건은 평가하지 않고 바로 True를 반환한다.
* OR 연산일 경우 조건 중 하나라도 True 이면 뒤의 조건은 평가하지 않고 바로 True를 반환한다.
** ex) if(a || b || c || d) 인 경우 a부터 평가하며 b가 false인 경우 c, d를 읽지 않는다.
** ex) if(a || b || c || d) 인 경우 a부터 평가하며 b가 true인 경우 c, d를 읽지 않는다.


== 활용 ==
== 활용 ==

Latest revision as of 08:20, 23 May 2021

Short-circuit Evaluation
조건문에서 빠른 검사를 위해 연산자가 논리합이냐 논리곱이냐에 따라 조건의 일부만 검사하여 판정을 내리는 방식
  • 현대 대부분의 프로그래밍 언어에서 이를 지원한다.

평가 방법[edit | edit source]

  • AND 연산일 경우 조건 중 하나라도 False 이면 뒤의 조건은 평가하지 않고 바로 False를 반환한다.
    • ex) if(a && b && c && d) 인 경우 a부터 평가하며 b가 false인 경우 c, d를 읽지 않는다.
  • OR 연산일 경우 조건 중 하나라도 True 이면 뒤의 조건은 평가하지 않고 바로 True를 반환한다.
    • ex) if(a || b || c || d) 인 경우 a부터 평가하며 b가 true인 경우 c, d를 읽지 않는다.

활용[edit | edit source]

  • 속도
    • 조건의 검사에 부하를 고려하여, 부하가 낮거나 단락 처리될 가능성이 높은 조건을 앞에 배치하는 것이 유리하다.
  • 테스트 및 에러 처리
    • 선행 조건에서 단락 처리될 경우 후행 조건 평가 중 Exception이 발생할 상황에서도 실행을 안시키므로 Exception이 발생하지 않는다.
    • 테스트 시 테스트 커버리지를 고려하여 모든 후행 조건이 테스트 될 수 있도록 해야 한다.