연산자란, 하나의 값 또는 여러 개의 값을 피연산자로 하여 새로운 값을 만들어내는 기호를 의미한다.
산술 연산자는 사칙연산에 사용되는 연산자 (+,-,*,/)와 나머지 연산자(%)를 포함한다.
산술 연산자의 동작은 일반적인 수학 연산과 거의 동일하다.
| 연산자 | 기능 | 예시(int) | 결과값 | 
|---|---|---|---|
| + | 두 항의 값을 더한 값을 반환한다. | 7 + 3 | 10 | 
| (덧셈 연산자) | |||
| - | 좌항의 값에서 우항 값을 뺀 값을 반환한다. | 7 - 3 | 4 | 
| (뺄셈 연산자) | |||
| * | 두 항의 값을 곱한 값을 반환한다. | 7 * 3 | 21 | 
| (곱셈 연산자) | |||
| / | 좌항을 우항으로 나눈 값을 반환한다. | 7 / 3 | 2 | 
| (나눗셈 연산자) | |||
| % | 좌항의 값을 우항의 값으로 나눈 나머지를 반환한다. | 7 % 3 | 1 | 
| (나머지 연산자 | |||
| 또는 모듈로 연산자) | 
예시
int num1 = 1;
int num2 = num1 + 2; // num2 -> 3
int num3 = num2 - 1; // num3 -> 2
int num4 = num3 * 3; // num4 -> 9
int num5 = num4 / 2; // num5 -> 4
int num6 = num5 % 3; // num6 -> 1
나눗셈 연산자와 나머지 연산자를 사용할 때에 우항에 0이 위치할 수 없다.
예시
int    num1 = 9 / 0;   // 에러
double num2 = 9.0 / 0; // Infinity
int    num3 = 9 % 0;   // 에러
double num4 = 9.0 % 0; // 에러
좌항이나 우항 중 하나라도 실수 타입의 값이 존재한다면, 실수 타입이 아닌 값도 자동으로 형변환되어 계산되며, 결과적으로 실수 간의 나눗셈 연산이 되어 소수점이 버려지지 않은 온전한 값으로 반환된다.
예시
double num1 = 9 / 2;   // 4.0
int    num2 = 9 / 2;   // 4
double num3 = 9.0 / 2; // 4.5
예시
num1 = num1 + 1; // num1의 값은 2가 된다. 
num2 = num2 - 1; // num2의 값은 0이 된다. 
예시
num1++; // num1 = num1 + 1;과 같다.
++num1; // num1 = num1 + 1;과 같다.
num2--; // num2 = num2 - 1;과 같다.
--num2; // num2 = num2 - 1;과 같다.
증감연산자가 피연산자보다 앞에 있으면 전위형 증감연산자, 뒤에 있으면 후위형 증감연산자라고 한다
예제
int num1 = 1;
int prefix = ++num1;
int num2 = 1;
int postfix = num2++;
num1 & prefix : num1에 전위형 증감연산자 ++를 사용했으므로, num1의 값이 1만큼 먼저 증가된 다음 그 결과값이 prefix에 할당된다.num1의 값은 2, prefix의 값도 2가 된다.num2 & postfix : num2에 후위형 증감연산자 ++를 사용했으므로, num2의 값이 먼저 postfix에 할당된 다음에 num2의 값이 1 증가한다.num2의 값은 2, postfix의 값은 1이 된다.예시
num1 = num1++;
num2 = num2--;
증감연산자에서 사용한 예시는 1씩 증가시키거나 감소시킬 때 사용할 수 있다.
하지만 2 혹은 3씩 증가시키거나 감소시키고 싶을 때 증감 연산자를 사용할 수 없다.
예시
num1 = num1 + 2;
num2 = num2 - 2;
이렇게 바꿔쓸 수 있음
예시 num1 += 2; num2 -= 2;
모든 사칙 연산자 및 나머지 연산자와 대입 연산자를 결합해서 복합 대입 연산자로 사용할 수 있다.
예시
// num1~5의 값을 모두 10이라고 한다면,
num1 += 3; // num1 -> 13
num2 -= 3; // num2 -> 7
num3 *= 3; // num3 -> 30
num4 /= 3; // num4 -> 3
num5 %= 3; // num5 -> 1
비교 연산자는 boolean타입으로 평가될 수 있는 조건시겡 사용되며, 크게 대소 비교(>,<,<=,>=) 연산자와 등가비교 (==,!=) 연산자로 분류된다.
대소 비교 연산자는 boolean을 제외한 나머지 기본 타입에 모두 사용할 수 있다.
| 대소 비교 연산자 | 결과 | 
|---|---|
| 5 > 3 | true | 
| 5 <= 5 | true | 
| 3 > 2 | true | 
| 2 >= 3 | false | 
x가 1보다 크고 5보다 작다를 표현할 때,1 < x < 5가 아닌,1 < x && x < 5와 같이 논리 연산자를 사용해 작성해야한다.
등가 비교 연산자는 모든 타입에 사용할 수 있는 연산자로, 두 항의 값이 동등한지의 여부를 판단할 때 사용한다.
| 등가 비교 연산자 | 결과 | 
|---|---|
| 5 == 3 | false | 
| 5 == 5 | true | 
| 3 !=2 | true | 
| 3 !=3 | false | 
논리 연산자는 AND 연산자 &&, OR 연산자 ||, NOT 연산자 !를 포함하며, 공통적으로 boolean 타입을 반환한다.
AND 연산자(&&) : 피연산자 두 개가 모두 true 일 때 true를 반환, 피연산자 두 개 중 하나라도 false면 false를 반환한다.
OR 연산자(||) : 피연산자 두 개 중 단 하나라도 true면 true를 반환한다. 모두 false일 경우면 false를 반환한다.
NOT 연산자(
!)는true와false를 반대로 바꾸는 연산자이다.예시 // 아래의 비교 연산 결과는 모두 true다. !true == false !false == true !!true == true
| 우선순위 | 연산자 | 내용 | 
|---|---|---|
| 1 | (),[] | 괄호/대괄호 | 
| 2 | !,~,++,-- | 부정/증감 연산자 | 
| 3 | *, /, % | 곱셈 / 나눗셈 연산자 | 
| 4 | <, <=, >, >= | 대소 비교 연산자 | 
| 5 | && | AND 연산자 | 
| 6 | || | OR 연산자 | 
| 7 | ? : | 조건 연산자 | 
| 8 | =, +=, -=, /=, %= | 대입/할당 연산자 | 
일반적인 수학 우선순위 규칙과 비슷하다.