Java 연산자란 무엇인가?
Java 연산자는 변수에 대한 연산을 수행하고 피연산자의 값을 조작하는 데 사용되는 기호입니다. 각 연산자는 특정한 작업을 수행합니다. 예를 들어 식 2 + 1 = 3 을 고려해 봅시다. 여기서 2와 1은 피연산자이고 + (플러스) 기호는 연산자라고 합니다. 또한 연산자 우선 순위와 연산자 결합성에 대해 배울 것입니다.
이제 각 연산자를 자세히 살펴보겠습니다.
단항 연산자
단항 연산자는 하나의 피연산자만 필요로하며 이 연산자는 값을 증가 또는 감소시키거나 식을 부정화하거나 부울 값을 반전시키는 데 사용됩니다.
++
(증가) : 이 연산자는 값을 1 증가시킵니다. 후위 증가 (a++)와 전위 증가 (++a) 두 종류가 있습니다.--
(감소) : 이 연산자는 값을 1 감소시킵니다. 후위 감소 (a–)와 전위 감소 (–a) 두 종류가 있습니다.!
(반전) : 이 연산자는 부울 값을 반전시킵니다.
예제:
public class GreatLearning {
public static void main(String[] args) {
int a = 10;
boolean b = true;
System.out.println(a++);
System.out.println(++a);
System.out.println(a--);
System.out.println(--a);
System.out.println(!b);
}
}
결과:
10
12
12
10
false
산술 연산자
산술 연산자는 덧셈, 뺄셈, 곱셈, 나눗셈 및 나머지 연산을 수행하는 데 사용됩니다. 이것은 수학 연산을 수행합니다.
+
(덧셈) : 이 연산자는 피연산자의 값을 더합니다.-
(뺄셈) : 이 연산자는 오른쪽 피연산자를 왼쪽 피연산자에서 뺍니다.*
(곱셈) : 이 연산자는 피연산자의 값을 곱합니다./
(나눗셈) : 이 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다.%
(나머지) : 이 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 나머지를 반환합니다.
예제:
public class GreatLearning {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
System.out.println(a % b);
}
}
결과:
30
-10
200
0
10
대입 연산자
대입 연산자는 변수에 새로운 값을 할당하는 데 사용됩니다. 대입 연산자의 왼쪽 피연산자를 변수라고 하고 오른쪽 피연산자를 값이라고 합니다.
=
: 이 연산자는 오른쪽의 값을 왼쪽의 피연산자에 할당합니다.+=
: 이 연산자는 오른쪽 피연산자를 왼쪽 피연산자에 더하고 결과를 왼쪽 피연산자에 할당합니다.-=
: 이 연산자는 오른쪽 피연산자를 왼쪽 피연산자에서 뺀 후 결과를 왼쪽 피연산자에 할당합니다.*=
: 이 연산자는 오른쪽 피연산자를 왼쪽 피연산자와 곱하고 결과를 왼쪽 피연산자에 할당합니다./=
: 이 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 결과를 왼쪽 피연산자에 할당합니다.^=
: 이 연산자는 피연산자에 대한 지수 연산을 수행하고 결과를 왼쪽 피연산자에 할당합니다.%=
: 이 연산자는 왼쪽 피연산자를 오른쪽 피연산자로 나눈 후 결과를 왼쪽 피연산자에 할당합니다.
예제:
public class GreatLearning {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c;
System.out.println(c = a);
System.out.println(b += a);
System.out.println(b -= a);
System.out.println(b *= a);
System.out.println(b /= a);
System.out.println(b ^= a);
System.out.println(b %= a);
}
}
결과:
10
30
10
200
2
0
0
논리 연산자
논리 연산자는 두 개 이상의 조건을 결합하거나 원래 조건의 평가를 부정화하는 데 사용됩니다.
&&
(논리 AND) : 이 연산자는 양쪽 피연산자가 모두 true인 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.||
(논리 OR) : 이 연산자는 두 피연산자 중 하나 이상이 true인 경우 true를 반환하고 그렇지 않으면 false를 반환합니다.!
(논리 NOT) : 이 연산자는 피연산자가 false인 경우 true를 반환하고 true인 경우 false를 반환합니다.
예제:
public class GreatLearning {
public static void main(String args[]) {
int a = 5;
System.out.println(a < 5 && a < 20);
System.out.println(a < 5 || a < 20);
System.out.println(!(a < 5 && a < 20));
}
}
결과:
false
true
true
시프트 연산자
시프트 연산자는 숫자의 비트를 왼쪽 또는 오른쪽으로 이동하여 숫자를 곱하거나 나누는 데 사용됩니다.
<<
(왼쪽 시프트) : 이 연산자는 첫 번째 피연산자의 비트를 왼쪽으로 이동하며 두 번째 피연산자는 이동할 비트 수를 결정합니다.>>
(오른쪽 시프트) : 이 연산자는 첫 번째 피연산자의 비트를 오른쪽으로 이동하며 두 번째 피연산자는 이동할 비트 수를 결정합니다.
예제:
public class GreatLearning {
public static void main(String args[]) {
int a = 58;
System.out.println(a << 2);
System.out.println(a >> 2);
}
}
결과:
232
14
비트 연산자
비트 연산자는 비트 문자열, 이진 숫자 또는 비트 배열에 작동합니다. 이는 프로세서에서 직접 지원되는 빠르고 간단한 연산입니다.
&
(비트 AND) : 이 연산자는 두 숫자를 피연산자로 사용하고 두 숫자의 모든 비트에 대해 AND를 수행합니다.|
(비트 OR) : 이 연산자는 두 숫자를 피연산자로 사용하고 두 숫자의 모든 비트에 대해 OR를 수행합니다.^
(비트 XOR) : 이 연산자는 두 숫자를 피연산자로 사용하고 두 숫자의 모든 비트에 대해 XOR를 수행합니다.~
(비트 NOT) : 이 연산자는 하나의 숫자를 피연산자로 사용하고 그 숫자의 모든 비트를 반전시킵니다.
예제:
public class GreatLearning {
public static void main(String[] args) {
int a = 58;
int b = 13;
System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
System.out.println(~a);
}
}
결과:
8
63
55
-59
삼항 연산자
삼항 연산자는 조건부 연산자로, 조건이나 비교를 수행하면서 코드 줄 수를 줄이는 데 사용됩니다. if-else 또는 중첩된 if-else 문을 대체합니다. 이것은 인라인 if, 조건 연산자 또는 삼항 if로도 불립니다.
구문 : (조건) ? (문1) : (문2)
여기서 조건은 boolean 값을 반환할 평가식입니다. 조건 결과가 true이면 문1이 실행되고, 조건 결과가 false이면 문2가 실행됩니다.
예제:
public class GreatLearning {
public static void main(String args[]) {
int a = 4;
int b = 9;
int min = (a < b) ? a : b;
System.out.println(min);
}
}
결과:
4
관계 연산자
관계 연산자는 두 숫자를 비교하고 boolean 값을 반환합니다. 이 연산자는 두 피연산자 간의 관계 또는 테스트를 정의하는 데 사용됩니다.
<
(작다) : 이 연산자는 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작으면 true를 반환하고 그렇지 않으면 false를 반환합니다.>
(크다) : 이 연산자는 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크면 true를 반환하고 그렇지 않으면 false를 반환합니다.<=
(작거나 같다) : 이 연산자는 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다.>=
(크거나 같다) : 이 연산자는 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거
나 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다.
==
(같다) : 이 연산자는 두 피연산자가 같으면 true를 반환하고 그렇지 않으면 false를 반환합니다.!=
(같지 않다) : 이 연산자는 두 피연산자가 다르면 true를 반환하고 그렇지 않으면 false를 반환합니다.
예제:
public class GreatLearning {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a < b);
System.out.println(a > b);
System.out.println(a <= b);
System.out.println(a >= b);
System.out.println(a == b);
System.out.println(a != b);
}
}
결과:
true
false
true
false
false
true
Java 연산자 우선순위와 연산자 결합성
연산자 우선순위 : 연산자 우선순위는 다른 우선순위를 가진 여러 연산자가 하나의 표현식에서 어떤 연산자를 먼저 수행할지 결정합니다.
연산자 결합성 : 연산자 결합성은 같은 우선순위를 가진 두 연산자가 나란히 있을 때 어떤 연산자가 먼저 수행될지 결정합니다.
연산자 | 우선순위 | 결합성 |
---|---|---|
Postfix | expr++ expr– | left to right |
Unary | ++expr –expr +expr -expr ~ ! | right to left |
Multiplicative | * / % | left to right |
Additive | + – | left to right |
Shift | << >> >>> | left to right |
Relational | < > <= >= instanceof | left to right |
Equality | == != | left to right |
Bitwise AND | & | left to right |
Bitwise exclusive OR | ^ | left to right |
Bitwise inclusive OR | | | left to right |
Logical AND | && | left to right |
Logical OR | || | left to right |
Ternary | ? : | right to left |
Assignment | = += -= *= /= %= &= ^= |= <<= >>= >>>= | right to left |
결론
전체적으로 연산자는 Java의 중요한 부분이며 데이터에 대한 다양한 작업을 수행하는 데 필요합니다. Java에서 사용 가능한 여러 가지 종류의 연산자가 있으며 각각이 특정 목적을 갖고 있습니다. 어떤 연산자는 다른 것보다 더 자주 사용되지만, 모든 연산자는 적절한 상황에서 유용할 수 있습니다. 약간의 연습을 통해 누구나 Java 연산자를 능숙하게 사용할 수 있습니다.