Java 연산자란? 유형, 예제 및 더 알아보기

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 연산자 우선순위와 연산자 결합성

연산자 우선순위 : 연산자 우선순위는 다른 우선순위를 가진 여러 연산자가 하나의 표현식에서 어떤 연산자를 먼저 수행할지 결정합니다.

연산자 결합성 : 연산자 결합성은 같은 우선순위를 가진 두 연산자가 나란히 있을 때 어떤 연산자가 먼저 수행될지 결정합니다.

연산자우선순위결합성
Postfixexpr++ 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< > <= >= instanceofleft 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 연산자를 능숙하게 사용할 수 있습니다.

Leave a Comment