2-6. 연산자

✅ 대입 연산자

package operator;

public class AssignmentOperator {
    public static void main(String[] args) {
        int mathScore = 80;
        int englishScore = 100;
        int totalScore = mathScore + englishScore;

        System.out.println(totalScore);
    }
}

[실행 결과]
180

'=' 기호를 사용하여 오른쪽의 변수나 값을 왼쪽 변수에 대입하는 연산자

▶ 우선 순위가 가장 낮다.


✅ 산술 연산자

자료 출처: Do it! JAVA 프로그래밍 (이지스퍼블리싱)

package operator;

public class ArithmeticOperator {
    public static void main(String[] args) {
        int num1 = 7;
        int num2 = 3;

        System.out.println(num1 + num2);
        System.out.println(num1 - num2);
        System.out.println(num1 * num2);
        System.out.println(num1 / num2);
        System.out.println(num1 % num2);
    }
}

[실행 결과]
10
4
21
2
1

▶ 사칙 연산에서 사용하는 +, -, *, / 에 나머지 연산을 뜻하는 %가 포함된다.

▶ 사칙 연산과 동일하게, *, /, % 의 우선순위는 +, - 보다 높다.


✅ 증가/감소 연산자

자료 출처: Do it! JAVA 프로그래밍 (이지스퍼블리싱)

package operator;

public class IncrementDecrementOperator1 {
    public static void main(String[] args) {
        int num1 = 10;

        int num2 = ++num1;
        System.out.println(num2);

        int num3 = --num1;
        System.out.println(num3);
    }
}

[실행 결과]
11
10

▶ 값을 1씩 증가시키거나, 감소시킬 때 사용한다.

package operator;

public class IncrementDecrementOperator2 {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = ++num1;
        int num3 = num1++;

        System.out.println(num1);
        System.out.println(num2);
        System.out.println(num3);
    }
}

[실행 결과]
12
11
11

▶ int num2 = ++num1; 문장은 다음과 같은 의미를 가진다.

  • (1) num1을 1만큼 증가시킨다.

  • (2) num1의 값을 num2에 대입한다.

▶ int num3 = num1++; 문장은 다음과 같은 의미를 가진다.

  • (1) num1의 값을 num3에 대입한다.

  • (2) num1을 1만큼 증가시킨다.

❗ 증감 연산자의 위치에 따라 결과값이 달라질 수 있으니 유의하자!


✅ 관계 연산자

자료 출처: Do it! JAVA 프로그래밍 (이지스퍼블리싱)

package operator;

public class RelationalOperator {
    public static void main(String[] args) {
        int num1 = 10;
        int num2 = 20;

        System.out.println(num1 < num2);
        System.out.println(num1 <= num2);
        System.out.println(num1 >= num2);
        System.out.println(num1 >= num2);
        System.out.println(num1 == num2);
        System.out.println(num1 != num2);
    }
}

[실행 결과]
true
true
false
false
false
true

▶ 크기 비교를 할 때 사용한다.

▶ 관계 연산자의 결과는 항상 bool값으로 리턴된다.

▶ 조건문이나 반복문의 조건식으로 주로 사용된다.


✅ 논리 연산자

자료 출처: Do it! JAVA 프로그래밍 (이지스퍼블리싱)

package operator;

public class LogicalOperator {
    public static void main(String[] args) {
        boolean isMale = true;
        boolean isStudent = false;

        System.out.println(isMale && isStudent);
        System.out.println(isMale || isStudent);
        System.out.println(!isMale);
        System.out.println(!isStudent);
    }
}

[실행 결과]
false
true
false
true

▶ 두 명제가 모두 true이면 논리 곱(and)은 true

▶ 두 명제 중 하나만 true이면 논리 합(or)은 true

▶ true의 부정은 false, false의 부정은 true

▶ 관계 연산자의 결과는 항상 bool값으로 리턴된다.


✅ 조건 연산자

자료 출처: Do it! JAVA 프로그래밍 (이지스퍼블리싱)

package operator;

public class ConditionalOperator {
    public static void main(String[] args) {
        int age = 20;
        String canDrink = (age >= 20) ? "Yes" : "No";

        System.out.println(canDrink);
    }
}

[실행 결과]
Yes

▶ 조건식이 true인 경우와 false인 경우의 결과값이 다르다.

▶ 연산에 필요한 항의 개수가 세 개라서 삼항 연산자라고도 불린다.


✅ 복합 대입 연산자

자료 출처: Do it! JAVA 프로그래밍 (이지스퍼블리싱)

package operator;

public class AdditionAssignmentOperator {
    public static void main(String[] args) {
        int num = 10;
        System.out.println(num);

        num += 20;
        System.out.println(num);

        num -= 5;
        System.out.println(num);

        num *= 4;
        System.out.println(num);

        num /= 10;
        System.out.println(num);

        num %= 3;
        System.out.println(num);
    }
}

[실행 결과]
10
30
25
100
10
1

▶ 대입 연산자와 다른 연산자가 함께 쓰이는 연산자

▶ 주로, 대입 연산자와 산술 연산자를 합쳐서 사용하는 경우가 많다.

▶ 우선 순위가 가장 낮다.


✅ 연산자 우선 순위

자료 출처: Do it! JAVA 프로그래밍 (이지스퍼블리싱)

▶ 대입 연산자의 우선 순위가 가장 낮다.

▶ 산술 연산자 > 관계 연산자 > 논리 연산자 > 대입 연산자

❗ 연산자 우선 순위가 잘 지켜진 수식이라도,
가독성 향상과 효율적인 협업을 위해 괄호를 적절히 사용하는 것이 좋다.

좋은 웹페이지 즐겨찾기