본문 바로가기
Work & Study/JAVA (& 혼공자Java)

자바(Java) - 연산자 종류3 (이항 연산자 - 비교, 논리 연산자)

by a.k.a DUKI 2020. 9. 9.
728x90
반응형

비교 연산자는,

    피연산자의 대소 또는 동등을 비교해서 true/false를 산출한다.

대소 연산자는 boolean을 제외한 기본 타입에서 사용

동등 연산자는 모든 타입에서 사용

비교연산자는 흐름 제어문인 조건문(if), 반복문(for, while)에서 주로 이용되어 실행 흐름을 제어할 때 사용

 

혼공자 유툽 참고

예시를 보면 이해가 쉬울 것같다.

 

그러나, 한가지 예외가 있다.

'A' == 65   //true
3 == 3.0    //true
0.1 == 0.1f //false

0.1f가 왼쪽 double타입으로 변환되어 true가 나와야 하지만 결과는 false이다.

이유는 자바에서 실수의 저장 방식인 부동 소수점 방식이 0.1을 정확히 표현할 수 없기 때문.

 

0.1f는 0.1의 근사값 (0.10000000149011612)으로 표현된다. 그래서 0.1보다 큰값이 된다.

 

true값을 받으려면 피연산자 모두 float타입으로 변환해서 비교하거나 정수 타입으로 변환해서 비교하면 된다.

0.1 == 0.1f --> false

 

 

논리 연산자 

논리연산자는 논리곱(&&-and), 논리합(||-or), 배타적 논리합(^-xor), 논리 부정(!-not) 연산을 수행한다.

논리 연산자는 boolean 타입만 사용한다.

 

 

혼공자 유툽 참고

&&와 &는 산출결과는 같으나, 과정이 조금 다르다

  • &&: 앞의 피연산자가 false라면 뒤의 피연산자를 평가하지 않고 바로 false값 결과 산출
  • &: 두 피연산자 모두를 평가해서 결과 산출

||와 | 도 같다.

  • ||: 앞의 피연산자가 true라면 뒤의 피연산자를 평가하지 않고 true값 결과 산출
  • |: 두 피연산자 모두를 평가해서 결과 산출

 

 

 

 

본 내용은 #혼자공부하는자바 책을 참고해 공부하려 작성했습니다.
728x90
반응형