JAVA

논리 연산자 (AND, OR, NOT, XOR)

태로미 2023. 2. 4. 15:47

 

 

 

 

 

▶▶   논리 연산자 ( &   &&   |   ||   !   ^ )

더보기

&     —  앰퍼센트

|      —  버티컬바

–  두 피연산자간의 논리적인 판별을 수행하는 연산자.
–  피연산자는 모두 boolean타입 데이터(true,false)만 사용 가능하며, 결과값도 boolean타입으로 리턴.

 

1.    AND 연산자

2.     OR  연산자

3.    NOT 연산자

4.    XOR 연산자

 

 

 

 

 

 

 

▶   AND 연산자 ( & 또는 && )  —  논리곱

–  이항연산자 (피연산자가 왼쪽에 하나 오른쪽에 하나 총 두개라서 이항연산자)
–  두 피연산자가 모두 true일 경우에만 결과값이 true이고, 하나라도 false일 경우 결과값이 false
–  그리고, ~~이고 등의 접속사에 해당하는 의미, 주로 A~B사이의 범위를 판별하는데 사용됨.
    ex ) A가 5보다 크'고' 10보다 작다
–  사실상 AND연산자는 하나라도 flase이 있으면 무조건 flase이므로,

    첫번째 조건이 false면 두번째 조건은 볼 필요도 없이 false임.
    그러므로 &&를 사용하면 첫번째 조건이 flase일 경우, 바로 flase 결과값을 리턴함 (편리)


EX1   )

 

 

EX2   )   대소 관계 확인

int num = 1;
System.out.println(num > 5);	// num이 5보다 큰 가?   	false
System.out.println(num < 10);	// num이 10보다 작은가? 	true

→   관계 연산자와 결합하여 대소 관계에 대한 논리적인 판별 확인 가능.
→   두 가지 관계연산을 각각 적용할 경우, 각 연산자에 대한 결과만 판별함.

 

두 가지 관계연산을 하나로 결합하여 적용한다면?

System.out.println(num > 5 && num < 10);

→   num이 5보다 크고, 10보다 작은가?라고 말로 풀어 보았을 때, '~이고','그리고' 등의 의미는 AND연산자 사용하여 결합.

   num>5 결과는 false,  num<10 결과는 true,  논리곱은 한 조건이라도 false라면 결과는 무조건 false.

 

 

 

 

 

 

 

▶   OR 연산자 ( | 또는 || )  —  논리합

–  두 피연산자가 하나라도 true일 경우, 결과값이 true이고, 둘 다 false일 때만 결과값이 false.
–  또는, ~이거나 등의 접속사에 해당하는 의미, 주로 A조건 또는 B조건 중 하나라도 만족하는 조건을 판별하는데 사용.
    ex )  A가 0보다 작'거나' 100보다 크다
–  사실상 OR연산자는 하나라도 true가 있으면 무조건 참, 첫번째 조건이 true면 두번째 조건은 볼 필요도 없이 true임.
    그러므로 ||를 사용하면 첫번째 조건이 true일 경우, 바로 true 결과값을 리턴함 (편리)


EX   )

 

 

EX2   )   대소 관계 확인

num이 0보다 작'거나' 100보다 큰 가?

int num = 1;
System.out.println(num < 0 || num > 100);

→   ~~이거나, 또는 등의 의미는 OR연산자 || 사용하여 결합함.

✓    결과값 false가 출력됨.

 

 

 

 

 

 

 

▶   NOT 연산자 ( ! )  —  논리 부정

–  단항연산자(피연산자가 1개)로 피연산자 앞에 '!' 기호를 붙임.
–  현재 boolean값을 반대로 반전 (현재 상태 반전)
    ex ) !true  =  false,      !false  =  true


EX   )

 

 

EX2   )

int num = 150;

System.out.println(!(num < 0 || num > 100));
System.out.println(num >= 0 && num <= 100);

→   NOT연산자(!)는 현재 조건을 만족하는가 판별
→   num이 0보다 작거나 100보다 큰 수가 '아닌가?'
→   num이 0보다 크거나 같고 100보다 작거나 같은 수가 '아닌가?'

✓    두 출력문 모두 결과값 false가 출력됨.

 

 

 

 

 

 

 

▶   XOR 연산자( ^ )  —  배타적 논리합 (exclusive OR)

–  두 피연산자가 서로 다를 경우 결과값이 true이고, 서로 같을 경우 결과값이 false.
–  평소에는 거의 쓸 일 없음, 특수한 경우에만 사용함.
–  같으면 False,  다르면 True

 


EX   )

 

 

 

 

 


 

 

 

comment

연산자는..무슨 종류가 이리 많지? ??
파도 파도 끝이 없는 연산자... 파도같은 밀물마냥 내게 밀려오는구나...^^