연산자 : 연산을 수행하는 기호

연산을 수행하기 위해서는 대상이 있어야 하는데, 이 대상을 피연산자라고 한다.

3 + 5 의 연산을 수행할 때 3,5는 피연산자, +가 연산자가 된다.

연산자 종류

 

1. 단항 연산자

  • 증감 연산자 ++, --
  • 부호 연산자 +, -

2. 산술 연산자

  • 사칙 연산자 +, -, *, /
  • 나머지 연산자 %

3. 비교 연산자

  • 대소비교 연산자 >, <, >=, <=
  • 등가비교 연산자 ==, !=

4. 논리 연산자

  • 논리 연산자 &&, ||, !
  • 비트 연산자 &, |, ^, ~, <<, >>

5. 그 외의 연산자

  • 조건 연산자 ? :
  • 대입 연산자 =, op=

 

연산자 우선 순위

우선순위 연산자 연산방향
0 () 괄호 속의 연산자 ->
1 증감(++, --), 부호(+, -), 비트 (~), 논리 (!) <-
2 산술 연산자(*, /, %),  산술 연산자 (+, -) ->
3 시프트 연산자 (<<, >>) ->
4 비교 연산자(==, !=) ->
5 비트 연산자 (&, ^, |), 논리 연산자(&&), 논리 연산자(||) ->
6 조건 연산자 ? : ->
7 대입 연산자 (=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=) <-

굵은 글씨는 왼쪽부터 우선순위가 높다.

 

논리 연산자 &&가 우선순위 더 높음 -> ||랑 섞어쓸 시 괄호 잘 사용해야한다.

단항, 대입 연산자만 오른쪽에서 왼쪽으로 연산 진행된다.

 

리터럴 연산은 컴파일 시에 미리 계산해준다.

따라서 코드 실행 성능에는 영향을 주지 않으므로 가독성을 생각해서 잘 사용하자.

ex) int day = 60 * 60 * 24;

      int day = 86400; (컴파일시 미리 계산되어 변환됨)

 

int / int 연산은 int로 수행됨 -> 나머지가 생력된다.

int / float 연산 -> int가 자동으로 float으로 형변환 -> 소수점 나머지 구현된다.

 

문자열을 비교 시에는 비교 연산자 아닌 equals() 사용해야한다.

(== 연산자는 완전히 동일한 리터럴 혹은 객체여야함)

 

 

 

 

 

+ Recent posts