[Java] 이항 연산자 2

🌈 M1naWorld ·2022년 11월 11일
0

자바를 잡아! 👻

목록 보기
13/19
post-thumbnail

이항 연산자

이항 연산자는 피연산자가 2개인 연산자를 말한다.

  • 이항 연산자 종류



문자 결합 연산자

문자 결합 연산자인 +는 문자열을 서로 결합하는 연산자이다. + 연산자는 산술 연산자, 부호 연산자인 동시에 문자열 결합 연산자이기도 하다. 피연산자 중 한쪽이 문자열이면 + 연산자는 문자열 결합 연산자로 사용되어 다른 피연산자를 문자열로 변환하고 서로 결합한다.

단, 연산순서에 따라 결과값이 다르게 나오니 주의할 필요가 있다.

String str2 = "JDK" + 3 + 3.0 // "JDK33.0"

String str3 = 3 + 3.0 + "JDK" // "6.0JDK"

비교 연산자

비교 연산자는 피연산자의 대소(<, <=, >, >=) 또는 동등(==, !=)을 비교해서 true, false를 산출한다. 비교 연산자는 흐름 제어문인 조건문, 반복문에 주로 이용되어 실행 흐름을 제어할 때 사용된다.

만약, 피연산자가 char 타입이면 유니코드 값으로 비교 연산을 수행한다.
('A' < 'B') ➡️ (65 < 66)

비교 연산자에서도 연산을 수행하기 전에 피연산자의 타입을 일치 시킨다.

  • 'A' == 65 ➡️ 65 == 65 // true : char 타입이 int 타입으로 변환되어 비교하는 예시

  • 3 == 3.0 ➡️ 3.0 == 3.0 // true: int타입이 double타입으로 변환되어 비교하는 예시


❗️주의 할 점 (0.1 == 0.1f 동등비교)
실수의 저장 방식인 부동 소수점 방식은 0.1을 정확히 표현할 수 없다. 0.1f는 0.1의 근사값(0.10000000149011612)으로 표현되며 0.1보다 큰 값이 되어 버린다. 이런 경우 피연산자를 모두 float 타입 혹은 정수 타입으로 변환해서 비교한다.

int v2 = 1;
double v3 = 1.0;

v2 == v3 // true

double v4 = 0.1;
float v5 = 0.1f;

(float)v4 == v5 // true

논리 연산자

논리 연산자는 논리곱(&& 또는 &), 논리합(|| 또는 |), 배타적 논리합(^), 논리 부정(!) 연산을 수행한다. 논리 연산자의 피연산자는 boolean 타입만 사용할 수 있다.

&&&는 산출 결과는 같지만 연산과정이 조금 다르다. &&는 앞의 피연산자가 false라면 뒤의 피연산자를 평가하지 않고 바로 false라는 산출 결과를 낸다. 그러나 &는 두 피연산자를 모두를 평가해서 산출 결과를 내기 때문에 & 보다는 &&이 더 효율적으로 동작한다. 이는 |||에도 마찬가지로 적용되며 ||은 앞의 피연산자가 true라면 뒤의 피연산자를 평가하지 않고 바로 true라는 산출 결과를 낸다.


대입 연산자

대입 연산자는 모든 연산자들 중 가장 낮은 연산 순위를 가지고 있기 때문에 제일 마지막에 수행되며 연산의 진행 방향이 오른쪽에서 왼쪽으로 진행된다.



Ref.
책: 혼자 공부하는 자바

profile
개발자로 사는 내 삶은 즐거워 👾

0개의 댓글