논리연산자

Mia Lee·2021년 11월 4일
0

JAVA

목록 보기
9/98
package operator;

public class Ex6 {

	public static void main(String[] args) {
		/*
		 * 논리연산자(&, &&, |, ||, !, ^)
		 * - 두 피연산자간의 논리적인 판별을 수행하는 연산자
		 * - 피연산자는 반드시 boolean 타입 데이터(true, false)만 사용 가능하며,
		 *   결과값(= 리턴값)도 boolean 타입으로 리턴
		 * - AND 연산자(&&)와 OR 연산자(||)는 Short Circuit Operation 과정이 일어나는데
		 *   AND 연산의 경우 앞쪽의 피연산자가 false 이면 뒤의 값을 연산하지 않고 바로 false 를 리턴하며,
		 *   OR 연산의 경우 앞쪽의 피연산자가 true 이면 뒤의 값을 연산하지 않고 바로 true 를 리턴하므로
		 *   연산 속도가 빠르다!
		 *   (만약, & 또는 | 연산자를 사용할 경우 앞의 피연산자와 관계없이 모든 값을 다 확인)
		 * - 주로, 비교연산자 등과 결합하여 조건을 판단하는 용도로 사용
		 *   ex) 나이가 5세 미만 '이거나' 65세 이상인 조건 판단
		 *   ex2) 나이가 20세 이상 '이고' 29세 이하인 조건 판단
		 *   
		 * < AND 연산자(& 또는 &&) = 논리곱 >
		 * - 두 피연산자가 모두 true 일 경우에만 결과값이 true 이고,
		 *   하나라도 false 일 경우 결과값이 false
		 * - 진리표 : F AND F = F, F AND T = F, T AND F = F, T AND T = T
		 * - 어떤 조건에 대해 '~이고', '그리고' 등의 의미를 판별하는 용도로 사용
		 * 
		 * < OR 연산자(| 또는 ||) = 논리합 >
		 * - 두 피연산자 중 하나라도 true 일 경우 결과값이 true 이고,
		 *   둘 다 false 일 경우에만 결과값이 false
		 * - 진리표 : F OR F = F, F OR T = T, T OR F = T, T OR T = T
		 * - 어떤 조건에 대해 '~이거나', '또는' 등의 의미를 판별하는 용도로 사용
		 * 
		 * < NOT 연산자(!) = 논리부정 >
		 * - 단항연산자이며, 피연산자 앞쪽(좌측)에 연산자를 붙여서 연산을 수행
		 * - 현재 피연산자의 논리값을 반대로 반전시킴
		 * - 진리표 : false -> true 로 바뀜, true -> false 로 바뀜
		 * 
		 * < XOR 연산자(^) = eXclusive OR = 배타적 논리합(OR) >
		 * - 두 피연산자가 서로 다르면 true, 같으면 false 리턴
		 * - 진리표 : F XOR F = F, F XOR T = T, T XOR F = T, T XOR T = F
		 */
		
		boolean a = false, b = true;
		
		System.out.println("a(false) && a(false) = " + (a && a));
		System.out.println("a(false) && b(true) = " + (a && b));
		System.out.println("b(true) && a(false) = " + (b && a));
		System.out.println("b(true) && b(true) = " + (b && b));
		
		System.out.println("-----------------------");
		
		System.out.println("a(false) || a(false) = " + (a || a));
		System.out.println("a(false) || b(true) = " + (a || b));
		System.out.println("b(true) || a(false) = " + (b || a));
		System.out.println("b(true) || b(true) = " + (b || b));
		
		System.out.println("-----------------------");
		
		System.out.println("!a(false) = " + (!a));
		System.out.println("!b(true) = " + (!b));
		
		System.out.println("-----------------------");
		
		System.out.println("a(false) ^ a(false) = " + (a ^ a));
		System.out.println("a(false) ^ b(true) = " + (a ^ b));
		System.out.println("b(true) ^ a(false) = " + (b ^ a));
		System.out.println("b(true) ^ b(true) = " + (b ^ b));
		
	}

}














0개의 댓글