Fast Blinking Hello Kitty
 

[🥸JAVA] 실무에서 자주 사용하 자바 연산자 종류(➰단항, 이항, 삼항!)

📍 개요

◾ 연산자의 우선순위와 종류를 파악하고 실무에서 자주 쓰이는 주요 내용 위주로 실습해보는 시간을 가졌습니다.


⭐ 연산의 우선순위

1) 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다.
2) 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다. 
3) 단항과 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽(->)이다.
4) 복잡한 연산식에는 괄호()를 사용해서 우선순위를 정해준다.
 

연산자
연산 방향
우선 순위
증감(++, --), 부호(+, -), 비트(~), 논리(!)
높음
산술(*, /, %)
 
산술(+, -)
 
쉬프트(<<, >>, >>>)
 
비교(<, >, <=, >=)
 
비교(==, !=)
 
논리(&)
 
논리(^)
 
논리(|)
 
논리(&&)
 
논리(||)
 
조건(?:)
 
대입(=, +=, -=, *=, /=, %=, &=, ^=, …)
낮음

1️⃣ 단항 연산자 〰️ 증감 연산자

단항 연산자 중 전치 연산자와 후치 연산자는 변수의 값을 증가시키거나 감소시키는 데 사용됩니다.
 

📁 전치 연산

연산식설명
++ 피연산자다른 연산을 수행하기 전, 먼저 피연산자의 값을 1 증가 시킨다.
-- 피연산자다른 연산을 수행하기 전, 먼저 피연산자의 값을 1 감소 시킨다.

 

📁 후치 연산

연산식설명
피연산자 ++값을 먼저 반환 후, 피연산자의 값을 1 증가 시킨다.
피연산자 --값을 먼저 반환 후, 피연산자의 값을 1 감소 시킨다.

 
 

🧷 예제로 증감 연산자 이해하기 

public class IncreaseDecreaseOperatorExample {
    public static void main(String[] args) {
        int x = 10;
        int y = 10;
        int z;

        System.out.println("----------------------");
        x++; // 후치 증감 연산: x = 10 => x가 11로 증가
        ++x; // 전치 증감 연산: x가 11에서 12로 증가
        System.out.println("x=" + x); // 출력: x=12

        System.out.println("----------------------");
        y--; // 후치 감소 연산: y = 10 => y가 9로 감소
        --y; // 전치 감소 연산: y가 9에서 8로 감소
        System.out.println("y=" + y); // 출력: y=8

        System.out.println("----------------------");
        z = x++; // 후치 증감 연산: z에 x 값 복사 (z=12), x는 13으로 증가
        System.out.println("z=" + z); // 출력: z=12
        System.out.println("x=" + x); // 출력: x=13

        System.out.println("----------------------");
        z = ++x; // 전치 증감 연산: x를 13에서 14로 증가시킨 후 z에 복사
        System.out.println("z=" + z); // 출력: z=14
        System.out.println("x=" + x); // 출력: x=14

        System.out.println("----------------------");
        z = ++x + y++; // 전치 증감 연산: x를 14에서 15로 증가시킨 후, y의 현재 값(8)을 더함. y는 이후 9로 증가
        // 따라서 z = 15 + 8 = 23
        System.out.println("z=" + z); // 출력: z=23
        System.out.println("x=" + x); // 출력: x=15
        System.out.println("y=" + y); // 출력: y=9
    }
}

2️⃣ 이항 연산자 〰️ 비교, 논리 연산자


📁 비교 연산자

비교 연산자는 피연산자들을 비교하여
boolean 타입인 true, false를 결과값으로 가져옵니다.


💡 그렇다면 String 타입은 어떻게 비교할까요?
문자열은 대소 비교를 할 수 없고, 동등 비교는 할 수 있습니다.
그러나 아래의 예제처럼 주의해야 하는 경우가 있습니다.

String str1 = "Hello";
String str2 = "Hello";
String str3 = new String("Hello");

System.out.println(str1 == str2);  // true
System.out.println(str1 == str3);  // false

⭐️ 결론적으로 정리하면
String 타입에 동등 연산을 할 경우
객체의 주소 값이 같은지 다른지를 확인합니다.
👉🏻 따라서 문자열 자체를 비교하고 싶으면
‘equals()’ 메소드를 이용합시다!

📁 논리 연산자

조건식을 연결하거나 비교할 때 사용하는 연산자입니다.

▪️ AND(&&)

x && y 에서 x와 y 모두 true여야 결과값 true

✔️ true && true → true
✔️ true && false → false
✔️ false && true → false
✔️ false && false → false

 

▪️ OR(||)

x && y 에서 x와 y 중 하나라도 true일 경우 결과값 true

✔️ true || true → true
✔️ true || false → true
✔️ false || true → true
✔️ false || false → false

 

▪️ XOR(^)

x ^ y에서 x와 y가 서로 다를 때만 결과가 true입니다.
즉, 둘 다 true이거나 둘 다 false이면 결과는 false입니다.

✔️ true ^ true → false
✔️ true ^ false → true
✔️ false ^ true → true
✔️ false ^ false → false

 

▪️ NOT(!)

!x는 x의 값을 반전시킵니다. true이면 false로, false이면 true로 변환합니다.

✔️ !true → false
✔️ !false → true

 

🧷 예제로 논리 연산자 이해하기 

/* 기본적인 연산 이해  */
public class Question {
    public static void main(String args[]) {
        int num1 = 5;
        int num2 = 7;

        System.out.println((num1 > 5) && (num2 > 5)); // false
        System.out.println((num1 > 5) || (num2 > 5)); // true
        System.out.println(!((num1 > 5) && (num2 > 5))); // true
    }
}

/* 공배수 */
int solution(int number, int n, int m) {
    if (number % n == 0 && number % m == 0) {
        return 1;
    } else {
        return 0;
    }
}

/* n의 배수 */
int solution(int num, int n) {
    if(num%n == 0) {
        return 1;
    } else {
        return 0;
    }
}

 


3️⃣ 삼항 연산자 〰️ 조건 연산식

삼항 연산자는 3개의 피연산자가 있는 형태로, 간단한 조건식을 표현할 때 사용합니다.
위의 이미지를 `조건식 ? 참일 때의 값 : 거짓일 때의 값`으로 이해하면 쉬운데요.
주로 `if-else`문을 간결하게 표현하는데 사용된답니다!
 

🧷 예제로 삼항 연산자 이해하기 

public class Example {
    public static void main(String[] args) {
        int num = 2;
        // 기존 if-else 문
        if (num % 2 == 0) {
            System.out.println("짝수");
        } else {
            System.out.println("홀수");
        }
        // 삼항 연산자 사용
        System.out.println(num % 2 == 0 ? "짝수" : "홀수");
    }
}

 
❗삼항 연산자는 간결하게 표현할 수 있지만, 아래의 코드처럼 중첩되어 사용하면
가독성이 떨어져 코드의 이해가 어려워질 수 있기에 잘 활용하셔야 합니다.

public class Example {
    public static void main(String[] args) {
        int score = 95;
        char grade = (score > 90) ? 'A' : ((score > 85) ? 'B' : 'C'); 

        System.out.println("당신의 학점은 : " + grade);
    }
}

📝 오늘의 부트캠프 회고

1️⃣ 잘했던 점
기본적인 연산자에 대한 다양한 예제를 통해 어떻게 동작하는지 파악하고,
연산자가 실제 코드에서 어떻게 사용되는지에 대한 감을 잡을 수 있었습니다.
예를 들어, 증감 연산자와 논리 연산자의 활용을 통해 이해도를 높일 수 있었습니다.

2️⃣ 부족했던 점
금일 학습 내용은 이론보다는 직접 코드를 작성해보고
여러 예제를 풀어야 이해가 되는 내용이 많아서 설명이 다소 부족했던 부분이 있었습니다.

3️⃣ 향후 개선 방향
연산자와 관련된 다양한 실습 문제로 실력을 더 확실히 다질 수 있도록 하겠습니다.
특히, 관련된 코딩 테스트 문제를 통해 연산자의 실제 사용 사례를 연습하면 좋을 것 같다고 생각했습니다.

 

📖 연산자 코딩 테스트 문제

🧷 공배수
🧷 n의 배수
🧷 flag에 따라 다른 값 반환하기
 
 
 
 

728x90
320x100