학습할 것

  • 산술 연산자
  • 비트 연산자
  • 관계 연산자
  • 논리 연산자
  • instanceof
  • assignment(=) operator
  • 화살표(->) 연산자
  • 3항 연산자
  • 연산자 우선 순위
  • (optional) Java 13. switch 연산자

산술 연산자


산술 연산자는 사칙연산을 다루는 연산자로, 가장 기본적이면서도 가장 많이 사용되는 연산자 중 하나입니다.

int num1 = 30;
int num2 = 40;
int num3 = 20;
int num4 = 10;
num1 += 50; //80
num2 -= 10; //40
num3 *= 20; //400
num4 /= 10; //1
num4 %= 10; //0

비트 연산자


예제

System.out.println("15 & 25 = " + (15 & 25));
System.out.println("15 | 25 = " + (15 | 25));
System.out.println("15 ^ 25 = " + (15 ^ 25));
System.out.println("~25 = " + (~25));
// 15 & 25 = 9
// 15 & 25 = 31
// 15 & 25 = 22
// ~25 = -26

관계 연산자


비교 연산자라고도 하며 우리가 수학시간에 배웠던 부등호를 생각하면 됩니다. 관계 연산자의 결과는 true 혹은 false 값인 boolean 자료형으로 반환이 됩니다.

논리 연산자


instanceof


  • instanceof는 객체타입을 확인하는 연산자입니다.
  • 형변환 가능여부를 확인하며 true/false로 결과를 반환합니다.
  • 주로 상속 관계에서 부모 객체인지 자식 객체인지 확인하는데 사용됩니다.

사용 방법

객체 + instanceof + 클래스

예제

class a{}
class B extends A{}
class instanceofEx01 {
public static void main(String[] args) {
A a = new A();
B b = new B();

System.out.println(a instanceof A);
System.out.println(b instanceof A);
System.out.println(a instanceof B);
System.out.println(b instanceof B);

true
true
false
true

세 번째 결과가 false인 이유는 부모가 자식이 되려 했기 때문이다.

assignment(=) operator


대입 연산자는 변수에 값을 대입할 때 사용하는 연산자입니다.
연산은 기본적으로 오른쪽에서 왼쪽으로 결합합니다.

대입 연산자의 종류

자주 활용하는 연산자만 알아보도록 하겠습니다.

화살표(->) 연산자


화살표 연산자는 람다식 표현에 사용되는 연산자

람다식 표현이란?

함수의 정의를 따로 만들지 않고 실제 사용되는 코드 부분에서 함수를 정의하여 사용하는 것

(매개변수) -> {실행문}

결국 화살표 연산자(->)는 매개변수를 넘겨서 함수를 실행한다는 의미입니다.

3항 연산자


if-else 표현을 한 줄(3항 연산자)로 요약 가능하다.

if-else

if(something) {
} else {
}

3항 연산자

변수 = (조건) ? 참 : 거짓;

boolean bl = 4<5? true:false;

주의 사항!

삼항 연산자를 사용하여 코드의 라인이 줄어들었다고 컴파일 속도가 빨라지는 것은 아닙니다.

연산자 우선 순위


(optional) Java 13. switch 연산자


  • 기존 Switch에서는 : 를 사용하여 조건에 대한 처리를 실행
  • Java 13에서는 화살표 연산자(->) 사용 가능

기존

switch(val) {
	case 'a' :
    	// something 'a'
        break;
    case 'b' :
    	// something 'b'
        break;
}

Java 13

switch(val) {
	case 'a' -> System.out.println('a');
    case 'b' -> System.out.println('b');
}

위와 같이 사용했을 때의 장점은 break를 사용하지 않아도 되고, 아래와 같이 표현 식으로도 사용 가능합니다.

표현식

System.out.println(
	switch(val) {
    	case 'a' -> "A"
        case 'b' -> "B"
        case 'c' -> "C"
    }
);
T a = switch(val) {
	case 'd' -> d;
    case 'e' -> e;
    default -> f;
};

표현식으로 사용하여 변수 할당이나 반환 값으로도 사용 가능합니다.

출처

http://www.tcpschool.com/java/java_operator_arithmetic
https://coding-factory.tistory.com/521
https://velog.io/@foeverna/Java-연산자-관계-논리-조건-비트-연산자
https://improver.tistory.com/140
https://mine-it-record.tistory.com/120
https://sowhat4.tistory.com/67
https://coding-factory.tistory.com/266
https://toma0912.tistory.com/66

0개의 댓글