비교 연산자
: 두 피연산자를 비교. 주로 조건문과 반복문의 조건식에 사용되며, 연산결과는 오직 true
와 false
둘 중 하나📍 대소비교 연산자 <
>
<=
>=
비교연산자 | 연산결과 |
---|---|
> | 좌변 값이 크면 true, 아니면 false |
< | 좌변 값이 작으면 true, 아니면 false |
>= | 좌변 값이 크거나 같으면 true, 아니면 false |
<= | 좌변 값이 작거나 같으면 true, 아니면 false |
📍 등가비교 연산자 ==
!=
비교연산자 | 연산결과 |
---|---|
== | 두 값이 같으면 true, 아니면 false |
!= | 두 값이 다르면 true, 아니면 false |
==
대신 equals()
라는 메서드 사용 str2와 "abc"의 내용이 같은데도 '
==
'로 비교하면, 결과는 false
→내용은 같지만 서로 다른 객체이기 때문
그러나 equals()는 객체가 달라도 내용이 같으면 true 반환
▶ 만일 대소문자를 구별하지 않고 비교하고 싶으면, equals()대신equalsIgnoreCase()
사용
&&
||
'&& 그리고(AND)'
. '|| 또는(OR)'
으로 연결하여 하나의 식으로 표현x | y | x││y | x&&y |
---|---|---|---|
true | true | true | true |
true | false | true | false |
false | true | true | false |
false | false | false | false |
🍕 사용예시 및 주의사항
①x는 10보다 크고, 20보다 작다
x > 10 && x < 20
10 < x && x < 20
②i는 2의 배수 또는 3의 배수이다
→2의 배수 : 2로 나누었을 때 나머지가 0
i % 2 == 0 || i % 3 == 0
③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) 는 같음
괄호 사용하여 우선순위를 명확히 해주는 것이 좋음
④문자 ch는 숫자('0'~'9')이다
사용자로부터 입력된 문자가 숫자('0'~'9')인지 확인하는 식은
→ '0' <= ch && ch <= '9'
유니코드에서 문자 '0'부터 '9'까지 연속적으로 배치되어 있기 때문에 가능한 식. 문자 '0'부터 '9'까지 유니코드는 10진수로 아래와 같음
문자 | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' |
---|---|---|---|---|---|---|---|---|---|---|
문자코드 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 |
▶ch의 값이 '5'인 경우 다음과 같은 과정으로 연산됨
'0' <= ch && ch <= '9'
→'0' <= 5 && '5' <= '9'
→48 <= 53 && 53 <= 57
→true && true
→true
⑤문자 ch는 대문자 또는 소문자이다
④의 경우와 마찬가지로 문자'a'부터 'z'까지, 그리고 'A'부터 'Z'까지도 연속적으로 배치되어 있으므로 문자 ch가 대문자 또는 소문자인지 확인하는 식은 아래와 같음
▶('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')