연산자(operator)
- 연산에 사용되는 표시나 기호
- 피연산자 : 연산이 되는 데이터
종류 | 연산자 | 우선순위 |
증감 연산자 | ++, -- | 1순위 |
산술 연산자 | +, -, *, /, % | 2순위 |
시프트 연산자 | >>, <<, >>> | 3순위 |
비교 연산자 | >, <. >=, <=, ==, != | 4순위 |
비트 연산자 | &, |, ^, ~ | ~만 1순위, 나머지는 5순위 |
논리 연산자 | &&, ||, ! | !만 1순위, 나머지는 6순위 |
조건(삼항) 연산자 | ?, : | 7순위 |
대입 연산자 | =, *=, /=, %=, +=, -= | 8순위 |
▲ 자바 연산자를 우선순위 순으로 나열한 표
아래에서 각 연산자에 대해 상세히 알아보자!!
1순위 : 증감 연산자
- 피연산자의 값을 1씩 증가 또는 감소시키는 연산자
- 연산자가 어디에 위치하느냐에 따라 결과값이 달라짐
- 피연산자가 단 하나뿐인 단항 연산자
증감 연산자 | 설명 |
++x | 먼저 피연산자의 값을 1 증가시킨 후에 해당 연산을 진행함. |
x++ | 먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 증가시킴. |
--x | 먼저 피연산자의 값을 1 감소시킨 후에 해당 연산을 진행함. |
x-- | 먼저 해당 연산을 수행하고 나서, 피연산자의 값을 1 감소시킴. |
2순위 : 산술 연산자
- 사칙연산을 다루는 기본적이면서도 가장 많이 사용되는 연산자
- 두 개의 피연산자를 가지는 이항연산자
- 피연산자들의 결합 방향의 왼쪽에서 오른쪽
산술 연산자 | 설명 |
+ | 왼쪽의 피연산자를 오른쪽의 피연산자로 더함 |
- | 왼쪽의 피연산자를 오른쪽의 피연산자로 뺌 |
* | 왼쪽의 피연산자를 오른쪽의 피연산자로 곱함 |
/ | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눔 |
% | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 반환함 |
3순위 : 시프트 연산자
- 비트 표현의 자릿수를 옮기는 연산자
시프트 연산자 | 설명 |
<< | 명시된 수만큼 비트들을 전부 왼쪽으로 이동시킴 (left shift 연산) |
>> | 부호를 유지하면서 지정한 수만큼 비트를 전부 오른쪽으로 이동시킴 (right shift 연산) |
>>> | 지정한 수만큼 비트를 전부 오른쪽으로 이동시키며, 새로운 비트는 전부 0이 됨 |
4순위 : 비교 연산자
- 피연산자 사이의 상대적인 크기를 판단하는 연산자
비교 연산자 | 설명 |
== | 왼쪽의 피연산자와 오른쪽의 피연산자가 같으면 참을 반환함. |
!= | 왼쪽의 피연산자와 오른쪽의 피연산자가 같지 않으면 참을 반환함. |
> | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크면 참을 반환함. |
>= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 크거나 같으면 참을 반환함. |
< | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작으면 참을 반환함. |
<= | 왼쪽의 피연산자가 오른쪽의 피연산자보다 작거나 같으면 참을 반환함. |
5순위 : 비트 연산자
- 비트 단위로 논리 연산을 할 때 사용하는 연산자
비트 연산자 | 설명 |
& | 대응되는 비트가 모두 1이면 1을 반환함 (비트 AND 연산) |
| | 대응되는 비트 중에서 하나라도 1이면 1을 반환함 (비트 OR 연산) |
^ | 대응되는 비트가 서로 다르면 1을 반환함 (비트 XOR 연산) |
~ | 비트를 1이면 0으로, 0이면 1로 반전시킴 (비트 NOT 연산, 1의 보수) |
6순위 : 논리 연산자
- 주어진 논리식을 판단하여 참과 거짓을 결정하는 연산자
논리 연산자 | 설명 |
&& | 논리식이 모두 참이면 참을 반환함. (논리 AND 연산) |
|| | 논리식 중에서 하나라도 참이면 참을 반환함. (논리 OR 연산) |
! | 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (논리 NOT 연산) |
▼ 모든 동작의 결과를 보여주는 진리표를 통해 논리연산자의 역할 확인
A | B | A&&B | A || B | !A |
true | true | true | true | false |
true | false | false | true | false |
false | true | false | true | true |
false | false | false | false | true |
7순위 : 조건(삼항) 연산자
- 피연산자를 3개 가지는 조건 연산자
조건식 ? 반환값1 : 반환값2
▲ 조건식이 참일 시 반환값 1을 반환하고 거짓일 시 반환값2를 반환
8순위 : 대입 연산자
- 변수에 값을 대입할 때 사용하는 이항 연산자
대입 연산자 | 설명 |
= | 왼쪽의 피연산자에 오른쪽의 피연산자를 대입함. |
+= | 왼쪽의 피연산자에 오른쪽의 피연산자를 더한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
-= | 왼쪽의 피연산자에서 오른쪽의 피연산자를 뺀 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
*= | 왼쪽의 피연산자에 오른쪽의 피연산자를 곱한 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
/= | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 결괏값을 왼쪽의 피연산자에 대입함. |
%= | 왼쪽의 피연산자를 오른쪽의 피연산자로 나눈 후, 그 나머지를 왼쪽의 피연산자에 대입함. |
'Java' 카테고리의 다른 글
2주차 퀴즈(1) (0) | 2024.10.15 |
---|---|
[2024-2 Java 스터디] #2주차 (6) | 2024.10.15 |
[2024-2 Java 스터디] #1주차 퀴즈 (0) | 2024.10.09 |
[2024-2 Java 스터디] #1주차 (19) | 2024.10.09 |
[Java] String = " " VS new String(" ") (0) | 2024.10.07 |