논리곱과 논리합의 차이

BEHE_LIT·2020년 1월 21일
0

수학적 논리

목록 보기
2/2

논리곱 a^b : a이고 b = 교집합, 둘다 True일 경우만 True를 출력한다.
논리합 avb : a또는 b = 합집합, 둘중 하나라도 True일 경우 Ture 출력.

이러한 기본적 이론은 알고 있었지만 코드로 직접 구현해보니 결과가 또 다르게 다가왔다.

if(score>80 && score<=100) {
		System.out.println("사랑합니다");

자바에서의 논리곱 연산자 && 이다.
80점초과, 100점 이하를 만족할 경우 "사랑합니다"를 출력하게 하고자 했는데 결과는 성공적이었다.
그렇다면 이 명제에 논리합을 적용하면 어떻게 될까? 80점 이상 또는 100점 이하
흠.. 문제없어보인다. 그런데 직접 코드로 구현해보니

if(score>80 || score<=100) {
		System.out.println("사랑합니다");

81점~100점 사이일 경우에만 만족이 되어야 하는데 범위밖인 70점을 입력했는데도 "사랑합니다" 가 출력되었다; 왜 그런가 생각해보니 논리합인 경우에는 독립시행 이라는 점을 깨달았다.

즉, 논리곱일 경우에는 두가지 조건이 협업을 해서 교집합을 이루는 느낌이지만 논리합일 경우에는 각자 조건들이 독립시행 말그대로 따로 노는 느낌이다.

프로그래밍에서 논리가 왜 중요한지 실질적으로 느끼게 되는 시점이다!

profile
방랑자의 현장에 오신걸 환영합니다.

0개의 댓글