연산자(operators)
- 연산자는 변수와 값을 연산할 때 사용됩니다.
- 연산자는 값과 값, 값과 변수, 변수와 변수를 연산할 수 있습니다.
- 연산자는 다음과 같이 그룹별로 나눌 수 있습니다.
- 수학 연산자(Arithmetic operators)
- 대입 연산자(Assignment operators)
- 비교 연산자(Comparison operators)
- 논리 연산자(Logical operators)
- 비트 연산자(Bitwise operators)
수학 연산자(Arithmetic Operators)
- 수학 연산자는 자주 쓰이는 수학 연산을 위해 사용됩니다.
Operator |
Name |
Description |
Example |
+ |
덧셈 |
두개의 값을 더함 |
x + y |
- |
뺄셈 |
하나의 값으로부터 다른 하나의 값을 뺌 |
x - y |
* |
곱셈 |
두개의 값을 곱함 |
x * y |
/ |
나눗셈 |
하나의 값을 다른 하나의 값으로 나눔 |
x / y |
% |
나머지 |
나머지 값을 반환함 |
x % y |
++ |
증가 |
변수의 값을 1 증가함 |
++x |
– |
감소 |
변수의 값을 1 감소함 |
–x |
int x = 5, y = 3;
System.out.println(x + y); // 8
System.out.println(x - y); // 2
System.out.println(x * y); // 15
System.out.println(x / y); // 1.6666667
System.out.println(x % y); // 2 (나머지값)
System.out.println(++x); // 6
System.out.println(--x); // 5 (++x에서 x가 6이 되어버렸기 때문)
대입 연산자(Assignment Operators)
- 대입 연산자는 단순 할당과 복합 할당 연산자가 있습니다.
Operator |
Description |
Example |
Same As |
= |
좌측에 있는 개체에 우측에 있는 값을 할당합니다(단순할당) |
x = 5 |
x = 5 |
+= |
좌측과 우측에 있는 값을 더한 후 좌측 개체에 값을 할당합니다. |
x += 5 |
x = x + 5 |
-= |
좌측에 있는 값을 우측에 있는 값으로 뺀 후 좌측 개체에 값을 할당합니다. |
x -= 5 |
x = x - 5 |
*= |
좌측과 우측에 있는 값을 곱한 후 좌측 개체에 값을 할당합니다. |
x *= 5 |
x = x * 5 |
/= |
좌측에 있는 값을 우측에 있는 값으로 나눈 후 좌측 개체에 값을 할당합니다. |
x /= 5 |
x = x / 5 |
%= |
좌측에 있는 값을 우측에 있는 값으로 나눈 나머지 값을 좌측 개체에 할당합니다. |
x %= 5 |
x = x % 5 |
&= |
좌측과 우측에 있는 값의 비트 AND를 구하여 좌측 개체에 값을 할당합니다. |
x &= 5 |
x = x & 5 |
|= |
좌측과 우측에 있는 값의 비트 OR를 구하여 좌측 개체에 값을 할당합니다. |
x |= 5 |
x = x | 5 |
^= |
좌측과 우측에 있는 값의 비트 XOR를 구하여 좌측 개체에 값을 할당합니다. |
x ^= 5 |
x = x ^ 5 |
»= |
우측에 있는 값에서 지정한 비트 수 만큼 좌측 값을 오른쪽으로 이동한 값을 좌측 개체에 할당합니다. |
x »= 5 |
x = x » 5 |
«= |
우측에 있는 값에서 지정한 비트 수 만큼 좌측 값을 왼쪽으로 이동한 값을 좌측 개체에 할당합니다. |
x «= 5 |
x = x « 5 |
int x = 6; // x = 6
x += 5; // x = 6 + 5 = 11
x -= 5; // x = 6 - 5 = 1
x *= 5; // x = 6 * 5 = 30
x /= 5; // x = 6 / 5 = 1.2
x %= 5; // x = 6 % 5 = 1
x &= 5; // x = 6(110) && 5(101) = 4(100)
x |= 5; // x = 6(110) || 5(101) = 7(111)
x ^= 5; // x = 6(110) ^ 5(101) = 3(011)
x >>= 2; // x = 6(110) >> 2 = 1(001)
x <<= 2; // x = 6(110) << 2 = 24(11000)
System.out.println(x);
- 해당 예제는 int x와 System.out.println(x)을 제외한 나머지는 주석처리 후에 하나씩 확인해주세요.
비교 연산자(Comparison Operators)
- 비교 연산자의 반환값의 타입은 불리언(Boolean) 입니다.
Operator |
Name/Description |
Example |
== |
동등 |
x == y |
!= |
부등 |
x != y |
> |
큼 |
x > y |
< |
작음 |
x < y |
>= |
크거나 같음 |
x >= y |
<= |
작거나 같음 |
x <= y |
int x = 6, y = 4;
System.out.println(x == y); // false
System.out.println(x != y); // true
System.out.println(x > y); // true
System.out.println(x < y); // false
System.out.println(x >= y); // true
System.out.println(x <= y); // false
논리 연산자(Logical Operators)
- 논리 연산자의 반환값의 타입은 불리언(Boolean) 입니다.
Operator |
Name |
Description |
Example |
&& |
논리 AND |
두 statement가 true일 때 true 반환 |
x <= 5 && x < 10 |
|| |
논리 OR |
두 statement중 하나라도 true일 때 true 반환 |
x <= 5 || x <4 |
! |
논리 NOT |
결과를 반대로 바꿈 |
!(x <= 5 && x < 10) |
int x = 5;
System.out.println(x <= 5 && x < 10); // true
System.out.println(x <= 5 || x < 4); // true
System.out.println(!(x <= 5 && x < 10)); // false