연산자

박민수·2023년 1월 14일
0

자바의 정석

목록 보기
3/17

1. 연산자란

'연산을 수행하는 기호' (+, -, *, / 등)

2. 피연산자란

피연산자는 연산자의 작업 대상(변수, 상수, 리터럴, 상수, 수식)

연산자 우선 순위

3. 산술 변환

(1) 이항 연산자는 두 피연산자의 타입이 일치해야 연산이 가능하다.
대부분의 경우, 두 피연산자의 타입 중에서 더 큰 타입으로 일치시키는데, 그 이유는 작은 타입으로 형변환하면 원래의 값이 손실될 가능성이 있기 때문이다.

산술 변환의 경우

  • 두 피연산자의 타입을 같게 일치시킨다.(보다 큰 타입으로 일치)
    ex) long + int -> long + long -> long
  • 피연산의 타입이 int보다 작은 타입이면 int로 변환된다.
    ex) byte + short -> int + int -> int

4. 논리 연산자(&&, ||, !)의 효율적인 연산

(1) OR(||)연산의 경우, 두 피연산자 중 어느 한 쪽만 '참'이어도 전체 연산결과가 '참'이므로 좌측 피연산자가 '참'이면, 우측 피연산자의 값은 평가하지 않는다.

(2) AND(&&)연산의 경우도 어느 한쪽만 '거짓'이어도 전체 연산결과가 '거짓'이므로 좌측 피연산자가 '거짓'이면, 우측 피연산자는 평가하지 않는다.

즉 좌측에 효율적인 피연산자를 입력하는 것이 유리하다.

5. 삼항 연산자

조건식? 식1 : 식2 //삼항연산자

조건이 참이라면 식1의 값이, 거짓이라면 식2의 값이 나타난다.

(1) 식1과 식2의 타입이 다른 경우 산술 변환이 발생한다.
ex)
"mod < 0.5 ? 0 : 0.5" 는 연산 과정에서
"mod < 0.5 ? 0.0 : 0.5" double 타입으로 통일된다.

6. 대입 연산자(=)

(1) 대입 연산자는 연산자들 중에서 가장 낮은 우선순위를 가지고 있기 때문에 제일 나중에 수행된다.
(2) 연산 진행 방향이 오른쪽에서 왼쪽이다.

x = y = 3

연산과정
1. y=3이 먼저 수행
2. x=3이 뒤에 수행

(3) 복합 대입 연산자
대입 연산자는 다른 연산자와 결합하여 사용될 수 있다.

profile
쉽게 쉽게

0개의 댓글