연산자

연산자(Operator)

이 문서에서는 연산자의 역할과 종류에 대해서 다룬다.

연산자란

연산자는 연산을 위해 사용하는 기호들을 말한다. 넓게 보면 연산과 계산은 유사한 의미를 가지며, 연산이 조금 더 큰 의미이다.

프로그래밍 언어에는 자신들만의 특색있는 연산자들이 다양하게 존재한다. 자바 역시 마찬가지이며, 연산자들을 이용하여 필요한 연산을 수행할 수 있도록 지원한다. 만약 하고싶은 연산에 해당하는 연산자가 없다면 우리가 스스로 만들어야 한다.

연산자의 종류

자바 연산자의 종류는 다음과 같다.

분류

이름

기호

공통 연산

대입 연산자

=

최우선 연산자

()

.

[]

숫자 연산

산술 연산자

+

-

*

/

%

증감 연산자

++

--

부호 연산자

+

-

비트 연산자

&

|

^

~

쉬프트 연산자

>>

<<

>>>

복합 대입 연산자

+=

-=

*=

/=

%=

&=

|=

^=

>>=

<<=

>>>=

논리 연산

비교 연산자

>

<

>=

<=

==

!=

논리 연산자

&&

||

!

기타 연산자

콤마 연산자

,

변환 연산자

(cast)

삼항 연산자

a?b:c

타입 연산자

instanceof

연산자 우선순위

연산자는 각각 우선순위가 부여되어 있다. 아래와 같은 식이 있다고 가정해본다.

int a = 10 + 2 * 3;

a를 출력하면 36이 아니라 16이 나온다는 사실을 알 수 있다. 이는 * 연산이 + 연산보다 우선순위가 높아서 먼저 실행되기 때문이다. 이처럼 우선순위를 알면 식을 오류없이 간결하게 작성할 수 있다. 하지만 모든 우선순위를 다 외울 수 없기 때문에, 결과가 이상하다고 생각이 되면 ( )를 사용하여 우선순위를 높일 수 있다.

int b = (10 + 2) * 3;

b를 출력하면 36이 나온다. ( ) 연산이 가장 먼저 실행되기 때문이며, 이를 이용하여 우리가 원하는 우선순위로 연산이 가능하도록 할 수 있다.

항의 개수에 따른 분류

연산자들은 연산을 위해 항(Operand)이 필요하다. 항이 몇 개 필요한가에 따라서 연산을 구분할 수 있다.

단항 연산

단항 연산은 연산에 필요한 항이 1개인 연산을 말한다. 예를 들면 다음과 같다.

int a = -10;

위의 코드에서 -10이라는 것은 -10이 합쳐진 결과이며, 이 때 -는 부호 연산이라고 한다. 부호 연산은 뒤의 값에 대한 부호를 설정하기 때문에 한 개의 항만 필요한 단항 연산이다.

이항 연산

이항 연산은 연산에 필요한 항이 2개인 연산을 말한다. 가장 일반적인 연산이며 예를 들면 다음과 같다.

int a = 10 + 20;

위의 코드에서 +가 이항 연산자이다. 연산을 수행하기 위해서 10, 20이라는 두 개의 값을 필요로 하기 때문이다. 이 외에도 모든 사칙연산은 이항 연산이며, 가장 많은 종류의 연산자가 이항 연산자이다.

삼항 연산

삼항 연산은 연산에 필요한 항이 3개인 연산을 말한다. 자바에서는 단 한 개의 연산이 존재한다.

int a = 10;
String s = (a % 2 == 0) ? "짝수" : "홀수";

String 변수인 s를 초기화 하기 위해 사용한 식이 삼항연산이다. ?: 를 이용하여 값 3개를 배치하며, 배치한 값에 의해 연산이 일어나게 된다. 자세한 사용법은 해당 연산 문서에서 다룬다.

Last updated