3. 연산자

산술 연산자

계산을 수행하는 기호를 연산자라 한다.

int a = 10;
int b = 5;
int sum = a + b; // 15
int difference = a - b; // 5
int product = a * b; // 50
int quotient = a / b; // 2
int remainder = a % b; // 0
 

비트 연산자

int f = 6; // 0110 in binary
int g = 4; // 0100 in binary
int bitAnd = f & g; // 0100 -> 4
int bitOr = f | g; // 0110 -> 6
int bitXor = f ^ g; // 0010 -> 2
int bitNot = ~f; // 1001 -> -7
int leftShift = f << 1; // 1100 -> 12
int rightShift = f >> 1; // 0011 -> 3
int unsignedRightShift = f >>> 1; // 0011 -> 3
 

관계 연산자

int d = 10;
int e = 20;
boolean isEqual = (d == e); // false
boolean isNotEqual = (d != e); // true
boolean isGreater = (d > e); // false
boolean isLess = (d < e); // true
boolean isGreaterOrEqual = (d >= e); //false
boolean isLessOrEqual = (d <= e); // true
 

논리 연산자

boolean x = true;
boolean y = false;
boolean andResult = x && y; // false
boolean orResult = x || y; // true
boolean notResult = !x; // false
 

instanceof

객체의 타입을 확인할때 사용 이항연산자이고 Boolean을 반환한다.

String str = "Hello, World!";
boolean isString = str instanceof String; // true
 

대입 연산자

int c = 10;
c += 5; // c = c + 5; -> c는 15
c -= 3; // c = c - 3; -> c는 12
c *= 2; // c = c * 2; -> c는 24
c /= 4; // c = c / 4; -> c는 6
c %= 5; // c = c % 5; -> c는 1
 

화살표 연산자

Java 8에서 추가된 람다 표현식, 함수형 프로그래밍으로 표현
화살표 연산자를 통해서 익명 클래스를 표현할 수 있음

// 기존
Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Hello, World!");
    }
};
new Thread(runnable).start();
 
 
// 람다
Runnable runnable = () -> {
    System.out.println("Hello, World!");
};
new Thread(runnable).start();
 

3항 연산자

(조건) ? (true 경우 실행) : (false 경우 실행)

int h = 10;
int i = 20;
int max = (h > i) ? h : i; // h가 i보다 크면 h, 그렇지 않으면 i 반환 -> max는 20
 

연산자 우선순위

switch 연산자

Java 12에서 추가된 연산자
break를 사용하지 않아도 되고 return값이 존재해도 된다.
case -> A의 형식으로 사용 가능
yield 예약어로 반환값을 미리 지정해놓을 수 있음

switch(score){
	case 100 -> System.out.println("만점");
    case 0 -> System.out.println("빵점");
};