본문 바로가기

자바의 정석 정리

자바의 정석 - 3.4 비교 연산자

3.4.1 대소비교 연산자

  • : 좌변이 크면 true. 그렇지 않으면 false
  • < : 좌변이 작으면 true. 그렇지 않으면 false
  • ≥ : 좌변이 크거나 같으면 true. 그렇지 않으면 false
  • ≤ : 좌변이 작거나 같으면 true. 그렇지 않으면 false

3.4.2 등가비교 연산자

  • == : 두 값이 같으면 true. 그렇지 않으면 false
  • ≠ : 두 값이 다르면 true. 그렇지 않으면 false
  • 근사값 오차 : 실수는 근사값으로 저장되므로 오차가 발생 할 수 있다.
10.0 == 10.0f // true
0.1 == 0.1f // false
/*
10.0f는 double로 변화하면 0.10000000000000001이므로 같다 할 수 있다.
0.1f는 double로 변화하면 0.10000000149011612이므로 다르다.
*/
  • 문자열 비교 : equals()
String str1 = "abc";
String str2 = new String("abc");

str1 == str2 // false
str1.equals(str2) // true
/*
equals는 내용이 같으면 서로다른 인스턴스라도 true로 반환한다.
동등 연산자인 '=='는 주소를 비교하여 결과 값을 반환하지만,
equals는 내용 자체를 비교하기 때문에 내용만 값으면 true를 반환한다.
*/

3.4.3 삼항 연산자

  • 조건식 ? 식1 : 식2
int a = 10;
int b = 5;

result1 = (a>b) ? 1 : 0 //result1 = 1
result2 = (a<b) ? 1 : 0 //result2 = 0