(1) 연산자 (Operator)
프로그램에서 데이터를 처리하여 결과를 산출하는 것
연산에 사용되는 표시나 기호는 연산자(Operator)
연산되는 데이터는 피연산자(Operand)
(2) 연산자 우선순위
연산자 종류별로 우선순위가 있다.
~와 !만 예외적으로 1순위이다.
종류
연산자
우선순위
증감 연산자
++, --
1순위
산술 연산자
+, -, *, /, %
2순위
시프트 연산자
>>, <<, >>>
3순위
비교 연산자
>, <, >=, <=, ==, !=
4순위
비트 연산자
&, |, ^, ~
~만 1순위, 나머지는 5순위
논리 연산자
&&, ||, !
!만 1순위, 나머지는 6순위
조건(삼항) 연산자
?, :
7순위
대입 연산자
=, *=, /=, %=, +=, -=
8순위
증감 > 산술 > 시프트 > 비교 > 비트 > 논리 > 조건 > 대입
증산시비비논조대
등산(증산) 하다가 시비 가 걸려서 비 오는 날 논 까지 미끄러져서 조대 (ㅈ됐)다.
(3) 증감 연산자
피연산자의 값을 1씩 증가 or 감소시키는 연산자
변수 앞 or 뒤에 위치하냐에 따라 다른 결과값
구분
연산자
설명
증감 연산자
x++
해당 연산 수행 => 피연산자 1 증가
++x
피연산자 1 증가 => 해당 연산 수행
x--
해당 연산 수행 => 피연산자 1 감소
--x
피연산자 1 감소 => 해당 연산 수행
// 증감 연산자 ++, --
int x = 10;
int y = x++;
int z = ++x;
System.out.println("x = " + x);
System.out.println("y = " + y);
System.out.println("z = " + z);
// 출력 결과
// x = 10
// y = 10
// z = 12
(4) 산술 연산자
기본적인 사칙 연산 (+, -, *, /)과 나머지 연산자 (%)
구분
연산자
설명
산술 연산자
+
덧셈
-
뺄셈
*
곱셈
/
나눗셈
%
나머지
// 나머지 연산자의 활용
int x = 1000;
// 7보다 작은 0 ~ 6 사이의 값 반환
System.out.println("x % 7 = " + (x % 7));
// 7보다 작은 0 ~ 1 사이의 값 반환
System.out.println("x % 2 = " + (x % 2));
// x값의 홀짝 여부
if(x % 2 == 0) {
System.out.println("x는 짝수");
} else {
System.out.println("x는 홀수");
}
(5) 시프트 연산자
bit 단위의 연산 처리
2진수로 표현된 비트를 해당하는 방향으로 이동시키는 연산자
구분
연산자
설명
시프트 연산자
>>
bit 값을 오른쪽으로 이동 (빈 자리는 부호값 대입)
<<
bit 값을 왼쪽으로 이동 (빈 자리는 0 대입)
>>>
bit 값을 오른쪽으로 이동 (빈 자리는 0 대입)
>>, >>> 연산자
<< 연산자
// 시프트 연산자 >>, <<, >>>
int x = 64;
int n = 2;
System.out.println("x >> n = " + (x >> n)); // 나눗셈 (x / 2^n)
System.out.println("x << n = " + (x << n)); // 곱셈 (x * 2^n)
System.out.println("x >>> n = " + (x >>> n));
System.out.println("x >> 34 = " + (x >> 34)); // x / 2^(n % 32)
System.out.println("x << 34 = " + (x << 34));
System.out.println("x >>> 34 = " + (x >>> 34));
(6) 비교 연산자
구분
연산자
설명
비교 연산자
>
크다
<
작다
>=
크거나 같다
<=
작거나 같다
==
피연산자들의 값이 같다
!=
피연산자들의 값이 같지 않다
(7) 비트 연산자
피연산자들의 값을 내부적으로 bit 단위로 변경한 후 연산을 수행
구분
연산자
설명
비트 연산자
&
비트 단위의 AND
|
비트 단위의 OR
^
XOR (배타적 OR)
~
단항 연산자로, 비트를 반전
x
y
x & y
x | y
x ^ y
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
(8) 논리 연산자
피연산자의 값이 true나 false인 논리 값을 가지고 다시 한 번 조건 연산
구분
연산자
의미
설명
논리 연산자
&
and (논리곱)
주어진 조건들이 모두 true일 때 true
|
or (논리합)
주어진 조건들 중 하나라도 true일 때 true
!
not (부정)
true는 false, false는 true로 변경
연산자
설명
&&
선 조건이 true일 때만 후 조건을 실행하며, 선 조건이 false이면 후조건을 실행하지 않는다.
||
선 조건이 true이면 후 조건을 실행하지 않으며, 선 조건이 false일 때만 후 조건을 실행한다.
(9) 조건 연산자
하나의 조건을 정의하여 만족할 시 참을 반환하고, 만족하지 못할 시 거짓을 반환
단순 비교에 의해 변화를 유도한 연산자
피연산자가 3개이기에 삼항 연산자 라고도 부른다.
구분
연산자
설명
구성
조건 연산자
? :
제어문의 단일 비교문과 유사
조건식 ? 참값 : 거짓값
(10) 대입 연산자
특정 상수, 변수 값이나 객체를 변수에 전달하여 기억시킬 때 사용하는 연산자
구분
연산자
설명
대입 연산자
=
왼쪽 변수에 오른쪽 변수 값을 대입
+=
왼쪽 변수에 오른쪽 변수를 더한 값을대입
-=
왼쪽 변수에서 오른쪽 변수를 뺀 값을 대입
*=
왼쪽 변수에 오른쪽 변수를 곱한 값 대입
/=
왼쪽 변수를 오른쪽 변수로 나눈 값을 대입
%=
왼쪽 변수를 오른쪽 변수로 나눈 나머지 값을 대입
int num = 120;
// +=, -=
num += 30; // num = num + 30;
num -= 30; // num = num - 30;
num += 3.14F; // 에러 발생
// 아래 코드와 같이 형 변환 필요
num += (int) 3.14F;
🍉 참고