드모르간 법칙이란??
'각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래 조건과 동일하다'
코드를 예로 들어 표현하면,
(num<10||num>99)
위와 같은 제어식이 있다고 하자, 이 식은 "!"(※ 논리 부정 연산자)를 이용하여 아래와 같이 표현할 수 있다.
!(num>=10&&num<=99)
두 식이 의미하는 바는 동일하다.. 이를 드모르간 법칙이라 한다.
더보기
논리 부정 연산자
피연산자가 true이면 false를, false이면 true를 반환하는 단항 연산자
참고로, 위 제어식은 단축평가(short circuit evaluation)이라고도 한다.
단축평가란,
논리 연산의 식 전체를 평가한 결과가 왼쪽 피연산자의 평가 결과만으로 결정되는 경우, 오른쪽 피연산자의 평가를 수행하지 않는 것이다.
&&의 경우,
T && T = T
T && F = F
F && T = F
F && F = F
왼쪽 피연산자가 False가 나왔을 경우, 해당 제어식의 결과는 False이므로, short circuit evaluation이다.
||의 경우,
T || T = T
T || F = T
F || T = T
F || F = F
왼쪽 피연산자가 True가 나왔을 경우, 해당 제어식의 결과는 True이므로, short circuit evaluation이다.
'Computer Science > 자료구조와 알고리즘' 카테고리의 다른 글
[JAVA] 백준 10809번 : 알파벳 찾기 (0) | 2021.03.30 |
---|---|
[알고리즘] 역순 정렬 및 값 교환 (0) | 2021.02.11 |
[알고리즘] 최댓값 구하기 - java (0) | 2021.02.11 |
[JAVA] 백준 11720번 : 숫자의 합 (0) | 2021.02.03 |
[JAVA] 백준 11654번 : 아스키 코드 (0) | 2021.02.03 |