Programming Language/JAVA
논리 연산자, 논리 부정 연산자
Glory-L
2023. 1. 17. 10:51
논리 연산자 && , ||
조건식을 연결할 때 사용하는 연산자
|| (OR 결합) : 피연산자 중 어느 한 쪽이 true이면 true
&& (AND 결합) : 피연산자 양쪽 모두 true이어야 true
1) x는 10보다 크고 20보다 작다.
x > 10 && x < 20 // 방법 1. 가독성이 조금 떨어 질 수 있음
10 < x && x < 20 // 방법 2. 가독성이 조금 더 좋음
// 어떤 방법을 쓰던지 상관은 없지만 이왕이면 가독성 좋게 코드를 짜는 것을 선호하자.
2) i는 2의 배수 또는 3의 배수이다.
// 표현 방법
i%2==0 || i%3==3
// i = 8일 때
i%2==0 || i%3==0
8%2==0 || 8%3==0
0==0 || 2==0
true || false
// 결과는 true
3) i는 2의 배수 또는 3의 배수지만 6의 배수는 아니다.
// 표현식
( i%2==0 || i%3==0 ) && i%6 != 0
// 위의 식에서 괄호를 쳐주는 이유
// '&&'가 '||'보다 우선순위가 높기 때문이다.
// 만약 괄호를 쓰지 않는다면 '&&'를 먼저 연산한다.
// 아래 두 식은 동일하다.
i%2==0 || i%3==0 && i%6 != 0
i%2==0 || (i%3==0 && i%6 != 0)
4) 문자 ch는 숫자 ('0' ~ '9')이다.
// 확인 방법
char ch = '1'; // ch 변수 선언
'0' <= ch && ch <= '9'
// 유니코드에서 문자 '0'부터 '9'까지는 연속적으로 배치되어 있기 때문에 가능한 식이다.
* 문자 유니코드
문자 | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' |
문자코드 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 |
5) 문자 ch는 대문자 또는 소문자이다.
* 4번 예시와 마찬가지로 문자 'a'부터 'z'까지, 'A' 부터 'Z' 까지 연속적으로 배치되어 있기 때문에 문자 ch가 대문자 또는 소문자인지 확인하는 방법은 아래와 같다.
('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')
// 4번의 예시와 마찬가지
논리 부정 연산자 ' ! '
true를 false로, false를 true로 바꾼다.
boolean b = true;
!!b // !!true -> !false -> true
// 문자 ch가 소문자가 아니다.
ch < 'a' || ch > 'z' // 방법 1
!('a' <= ch && ch <= 'z') // 논리부정 연산자를 이용한 방법 2
[ 자바의 정석 - 기초 유튜브 강의 영상 참고 ]
https://www.youtube.com/watch?v=AdFrJizyF80&list=PLW2UjW795-f6xWA2_MUhEVgPauhGl3xIp&index=30