[윤성우의 열혈 Java 프로그래밍] Chapter 04 - 연산자(Operators)

Update:     Updated:

카테고리:

태그:

04-1. 자바에서 제공하는 이항 연산자들

- 대입 연산자와 산술 연산자: =, +, -, *, /, %

image

- 복합(Compound) 대입 연산자

image

- 관계 연산자: <, >, <=, >=, ==, !=

image
image

- 논리 연산자: $$, ||, !

image

- 논리 연산자 사용 시 주의할 점: SCE

연산의 특성 중 Short-Circuit Evaluation이라는 것이 있다.

연산의 효율 및 속도를 높이기 위해서 불필요한 연산을 생략하는 행위

public class SCE {
    public static void main(String[] args) {
        int num1 = 0;
        int num2 = 0;
        boolean result;

        result = ((num1 += 10)<0) && ((num2 += 10) > 0);    // 앞 조건문에서 false를 반환하고, and 연산이 수행되기 때문에 뒷 연산이 생략된다.
        System.out.println("result = " + result);
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2 + '\n');

        result = ((num1 += 10) > 0) || ((num2 += 10) > 0);  // 앞 조건문에서 true를 반환하고, or 연산이 수행되기 때문에 뒷 연산이 생략된다.
        System.out.println("result = " + result);
        System.out.println("num1 = " + num1);
        System.out.println("num2 = " + num2);
    }
}

image
이러한 연산을 가리켜 SCE(Short-Circuit Evaluation)이라 한다.

04-2. 자바에서 제공하는 단항 연산자들

- 부호 연산자

short num1 = 7;
short num2 = (short)(+num1);  // 형 변환 하지 않으면 오류 발생
short num3 = (short)(-num1);  // 형 변환 하지 않으면 오류 발생

자바는 기본적으로 정수형 연산을 int형으로 진행하고 그 결과도 int형으로 반환한다.
단항 연산도 마찬가지이기 때문에 형 변환을 해주어야한다.

- 증가 및 감소 연산자: Prefix ++, Prefix -- & Postfix ++, Postfix --

image
image

public class PrePostfixOp {
    public static void main(String[] args) {
        // pre는 증가 후 출력
        int num1 = 7;
        System.out.println(++num1);
        System.out.println(++num1);
        System.out.println(num1);
        System.out.println();

        // post는 출력 후 증가
        int num2 = 7;
        System.out.println(num2++);
        System.out.println(num2++);
        System.out.println(num2);
    }
}

image

04-3. 비트를 대상으로 하는 연산자들

- 비트 연산자: &, |, ^, ~

image

- 비트 쉬프트 연산자: <<, >>, >>>

image

Java lang 카테고리 내 다른 글 보러가기

댓글 남기기