본문 바로가기
Java

[Java] 연산자

by Hindsight.. 2020. 12. 20.

 

 

github.com/whiteship/live-study/issues/3

 

3주차 과제: 연산자 · Issue #3 · whiteship/live-study

목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (option

github.com

3주차

백기선님이 진행하시는 Java 라이브 스터디 3주차 과제입니다.

 

1. 산술 연산자

int a = 10;
int b = 20;

int sum = a + b; // 덧셈
int sub = a - b; // 뺄셈
int mul = a * b; // 곱셈
int div = a / b; // 나눗셈
int rem = a % b; // 나머지연산

2. 비트연산자

int a = 4;
int b = 5;


int and = a & b; // 4(100) & 5(101) = 4(100)
int or = a | b; // 4(100) | 5(101) = 5(101)
int xor = a ^ b; // 4(100) ^ 5(101) = 1(001)
int not = ~a // ~4(100) -> -5

3. 관계연산자

int a = 10;
int b = 10;

a > b // false;
a < b // false;
a >= b // true;
a <= b // true;
a == b // true;
a != b // false;

4. 논리 연산자

boolean a = true;
boolean b = false;


if(a && b)
	System.out.println("둘 다 참이어야 출력");
else if( a || b )
	Sysetm.out.println("둘 중 하나만 참이면 출력");
else if( a && !b )
	System.out.println("false였던 b를 ! 연산자로 true로 바꿔주면 && 성립, 출력!);

5. instanceof

class Parent{}
class Child extends Parent{}

Parent p = new Parent();
Child c = new Child();


if(p instanceof Parent) // 출력
	System.out.println("p는 Parent클래스의 인스턴스");

if(c instanceof Child) // 출력
	System.out.println("c는 Child클래스의 인스턴스");

if(p instanceof Child) // 출력안됨, p는 child클래스의 기능을 모두 담지 못하므로(부모클래스이므로) 인스턴스로 인식되지않는다.
	System.out.println("p는 Child클래스의 인스턴스");
    
if(c instanceof Parent) // 출력
	System.out.println("c는 Parent 클래스의 인스턴스");
    

6. assignment(=) 연산자

int a;


a = 10; // 그대로 할당
a += 20; // a와 오른쪽값의 합을 a에 할당, a = a + 20
a -= 20; // a와 오른쪽값의 차를 a에 할당, a = a - 20
a /= 2; // 밑도 쭉 같은 형식
a *= 2;
a %= 2;

a = 10;
a &= 2;
a |= 2;
a ^= 2;


a <<= 2;
a >>= 2;

7. 화살표(->) 연산자 == 람다 표현식

int min(int x, int y) {

    return x < y ? x : y;

}

(x, y) -> x < y ? x : y;

// 출처 : http://www.tcpschool.com/java/java_lambda_concept

8. 3항 연산자

int a = 10;
int b = 20;

int max = a > b ? a : b;

// ? 기준 왼쪽의 조건식이 참이면 : 기준 왼쪽값 할당, 거짓이면, b할당

9. 연산자 우선순위

우선순위 연산자 내용
1 [], () 괄호
2 ++, --, !, ~ 증감, 부정
3 *, /, % 곱셈, 나눗셈, 나머지
4 +, - 덧셈, 뺄셈
5 <<, >>, >>> 쉬프트
6 <, <=, >, >= 관계
7 ==, != 관계
8 & 비트연산자 and
9 ^ 비트연산자 xor
10 | 비트연산자 or
11 && 논리곱 
12 || 논리합
13 ? : 삼항연산자
14 =, +=, -=, /=, %=, <<=, >>=, &=, ^=, ~= 할당연산자

10. Java 13. switch 연산자

mkyong.com/java/java-13-switch-expressions/

 

Java 13 - Switch Expressions - Mkyong.com

- Java 13 - Switch Expressions

mkyong.com

너무 잘 설명해주신 블로그 글이 있어 링크를 걸어둡니다!!