프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산(operations)이라고 한다. 연산에 사용되는 표시나 기호를 연산자(operator)라고 하고, 연산되는 데이터는 피연산자(operand)라고 한다. 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것을 연산식(expressions)이라고 부른다. 예를 들어 다음 연산식에서 +, -, *, ==은 연산자이고 x, y, z 변수는 피연산자이다.


x + y

x - y

x * y + z

x == y


자바 언어에서는 다양한 연산자를 제공하고 있다. 이 연산자들은 피연산자를 연산해서 값을 산출하는데, 산출되는 값의 타입은 연산자별로 다르다. 예를 들어 산술 연산자일 경우는 숫자 타입(byte, short, int, long, float, double)으로 결과값이 나오고, 비교 연산자와 논리 연산자는 논리(boolean) 타입으로 나온다. 다음과 자바에서 제공하는 다양한 연사자를 보여준다.


연산자 종류

연산자

피연산자 수

산출값

기능 설명

산술

+, -, *, /, %

이항

숫자

사칙연산 및 나머지 계산

부호

+, -

단항

숫자

음수와 양수의 부호

문자열

+

이항

문자열

두 문자열을 연결

대입

=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=

이항

다양

우변의 값을 좌변의 변수에 대입

증감

++, --

단항

숫자

1만큼 증가/감소

비교

==, !=, >, <, >=, <=, instanceof

이항

boolean

값의 비교

논리

!, &, |, &&, ||

단항

이항

boolean

논리적 NOT, AND, OR 연산

조건

(조건식) ? A : B

삼항

다양

조건식에 따라 A 또는 B 중 하나를 선택

비트

~, &, |, ^

단항

이항

숫자

boolean

비트 NOT, AND, OR, XOR 연산

쉬프트

>>, <<, >>>

이항

숫자

비트를 좌측/우측으로 밀어서 이동


연산자는 필요로 하는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분된다. 부호 연산자와 증가/감소 연산자는 피연산자 하나만을 요구하므로 단항 연산자이고, 조건 연산자는 조건식, A, B와 같이 세 개의 피연산자가 필요하므로 삼항 연산자라고 한다. 그 이외의 연산자는 두 개의 피연산자를 요구하므로 모두 이항 연산자이다.


단항 연산자 : ++x;

이항 연산자 : x + y;

삼항 연산자 : (sum > 90) ? "A" : "B";


연산식은 반드시 하나의 값을 산출한다. 연산자 수가 아무리 많아도 두 개 이상의 값을 산출하는 연산식은 없다. 그렇기 때문에 하나의 값이 올 수 있는 곳이면 어디든지 값 대신에 연산식을 사용할 수 있다.보통 연산식의 값은 변수에 저장하는데, 다음과 같이 x와 y 변수의 값을 더하고 나서 result 변수에 저장한다.


int result = x + y;


연산식은 다른 연산식의 피연산자 위치에도 올 수 있다. 다음과 같이 비교 연산자인 < 의 좌측 피연산자로 (x+y)라는 연산식이 사용되어, x와 y 변수의 값을 더하고 나서 5보다 작은지 검사한 후 결과값(true 또는 false)을 result 변수에 저장한다.


boolean result = (x+y) < 5;

+ Recent posts