연산자
연산자(Operator)
이 문서에서는 연산자의 역할과 종류에 대해서 다룬다.
연산자란
연산자는 연산을 위해 사용하는 기호들을 말한다. 넓게 보면 연산과 계산은 유사한 의미를 가지며, 연산이 조금 더 큰 의미이다.
프로그래밍 언어에는 자신들만의 특색있는 연산자들이 다양하게 존재한다. 자바 역시 마찬가지이며, 연산자들을 이용하여 필요한 연산을 수행할 수 있도록 지원한다. 만약 하고싶은 연산에 해당하는 연산자가 없다면 우리가 스스로 만들어야 한다.
연산자의 종류
자바 연산자의 종류는 다음과 같다.
분류
이름
기호
공통 연산
대입 연산자
=
최우선 연산자
()
.
[]
숫자 연산
산술 연산자
+
-
*
/
%
증감 연산자
++
--
부호 연산자
+
-
비트 연산자
&
|
^
~
쉬프트 연산자
>>
<<
>>>
복합 대입 연산자
+=
-=
*=
/=
%=
&=
|=
^=
>>=
<<=
>>>=
논리 연산
비교 연산자
>
<
>=
<=
==
!=
논리 연산자
&&
||
!
기타 연산자
콤마 연산자
,
변환 연산자
(cast)
삼항 연산자
a?b:c
타입 연산자
instanceof
연산자 우선순위
연산자는 각각 우선순위가 부여되어 있다. 아래와 같은 식이 있다고 가정해본다.
a를 출력하면 36이 아니라 16이 나온다는 사실을 알 수 있다. 이는 *
연산이 +
연산보다 우선순위가 높아서 먼저 실행되기 때문이다. 이처럼 우선순위를 알면 식을 오류없이 간결하게 작성할 수 있다. 하지만 모든 우선순위를 다 외울 수 없기 때문에, 결과가 이상하다고 생각이 되면 ( )
를 사용하여 우선순위를 높일 수 있다.
b를 출력하면 36이 나온다. ( )
연산이 가장 먼저 실행되기 때문이며, 이를 이용하여 우리가 원하는 우선순위로 연산이 가능하도록 할 수 있다.
항의 개수에 따른 분류
연산자들은 연산을 위해 항(Operand)이 필요하다. 항이 몇 개 필요한가에 따라서 연산을 구분할 수 있다.
단항 연산
단항 연산은 연산에 필요한 항이 1개인 연산을 말한다. 예를 들면 다음과 같다.
위의 코드에서 -10이라는 것은 -
와 10
이 합쳐진 결과이며, 이 때 -
는 부호 연산이라고 한다. 부호 연산은 뒤의 값에 대한 부호를 설정하기 때문에 한 개의 항만 필요한 단항 연산이다.
이항 연산
이항 연산은 연산에 필요한 항이 2개인 연산을 말한다. 가장 일반적인 연산이며 예를 들면 다음과 같다.
위의 코드에서 +
가 이항 연산자이다. 연산을 수행하기 위해서 10
, 20
이라는 두 개의 값을 필요로 하기 때문이다. 이 외에도 모든 사칙연산은 이항 연산이며, 가장 많은 종류의 연산자가 이항 연산자이다.
삼항 연산
삼항 연산은 연산에 필요한 항이 3개인 연산을 말한다. 자바에서는 단 한 개의 연산이 존재한다.
String 변수인 s를 초기화 하기 위해 사용한 식이 삼항연산이다. ?
와 :
를 이용하여 값 3개를 배치하며, 배치한 값에 의해 연산이 일어나게 된다. 자세한 사용법은 해당 연산 문서에서 다룬다.
Last updated