티스토리 뷰

[백기선live-study]

3주차 과제: 연산자

koyuchang 2021. 1. 10. 15:45

3주차 과제: 연산자

연산자


산술 연산자

int a=10;
int b=20;

System.out.println(a+b); //30
System.out.println(a-b); //-10
System.out.println(a*b); // 200
System.out.println(a/b); // 0.5
System.out.println(a%b); // 10

비트 연산자

System.out.println(2<<3); // 2에다가 3번 *2하는 거랑 같다.
System.out.println(10>>2); // 10에다가 2번 나누기 2하는 거랑 같다.

관계 연산자

System.out.println(3>4); // 3보다 4가 크므로 false를 출력.
System.out.println(10<20); //10 보다 20이 더 크므로 true 출력
System.out.println(10<=10); // 10이 10보다 같거나 작으므로 true 출력

int a=5;
int b=5;
System.out.println(a==b); // a랑 b가 같으므로 true를 출력
b=10;
System.out.println(a!=b); // a랑 b가 다르므로 false를 출력

논리 연산자

int a=5;
int b=10;

System.out.println(a+b>10 %% b+c <19); // 두 조건 모드 만족하므로 true를 출력
System.out.println(a+b>10 %% b+c <10); // 둘 중 하나라도 만족하면 true 출력
System.out.println(!(a+b>10)); // a+b는 10을 넘어서 true이지만 !로 부정하므로 false 출력



instanceof

  • 객체 타입을 확인하는데 사용.
  • 주로 상속 관계에서 부모인지 자식객체인지 확인하는데 사용된다.
class A{

}
class B extends A{

}

A parent  = new A();
B child = new B();

System.out.println(parent instanceof A); // parent객체는 자기자신의 객체이므로 true 출력
System.out.println(child instanceof B); // child는 자기자신의 객체이므로 true 출력
System.out.println(child instanceof A); // child는 Parent를 상속받으므로 자식객체이다.true 출력(형변환가능)
System.out.println(Parent instanceof B); // parent가 child의 부모객체이다. 더 하위개념으로 형변환은 불가능하므로 false출력



assignment operator(대입연산자)

int a=0;
a=5;// a에 5대입
System.out.prinln(a) // 5출력
a+=5;
System.out.prinln(a); // 10 출력
a-=5;
System.out.prinln(a); // 5 출력
a*=5;
System.out.prinln(a); // 25 출력
a/=5;
System.out.prinln(a); // 5 출력
a%=5;
System.out.prinln(a); // 0 출력

화살표 연산자(람다식)

  • Java 8부터 지원
(매개변수, ...) -> {실행문...} 

@FunctionalInterface
public interface showme{
    void show(int num); // Functional Interface는 추상메소드가 하나인 인터페이스
}

람다식 사용하기전

public class main {
    public static void main(String[] args) {
        showme me = new showme() {
            @Override
            public void show(int num) {
                System.out.println(num+"라구욧!");
            }
        };
    }
}

람다식 사용

public class main {
    public static void main(String[] args) {
        int k=10;
        showme me = (x) -> System.out.println(x+"라구욧");
        me.show(k);
    }
}

위의 두개를 비교해봤을때 람다식을 사용했을 때 더욱 간편해진다.




3항 연산자

int a=10;
int b=5;
int c = a>b? 99:11; // 'a+b'는 조건문, 99는 참일경우, 11은 거짓일 경우를 뜻한다. 결과는 99가 c에 들어간다.



연산자 우선순위

연산자부터 조건·반복문까지. 이것이 자바다 | 신용권의 Java 프로그래밍 정복_1… | by Eunjeogn Kim | Medium

출저:https://medium.com/@katekim720/%EC%97%B0%EC%82%B0%EC%9E%90%EB%B6%80%ED%84%B0-%EC%A1%B0%EA%B1%B4-%EB%B0%98%EB%B3%B5%EB%AC%B8%EA%B9%8C%EC%A7%80-3d5cec6513d4




Java 13 swtich 연산자

Java 12의 switch 연산자

int num=10;
switch(num){ // Lambda표현식이 사용가능.
    case 1 -> System.out.println("1");
    case 2,3,4 -> System.out.println("2,3,4"); // Multi case Label이 가능해졌다.
    case 10 -> System.out.println("10");
}
int ans = switch(num){// 리턴값을 받을 수 있다.
        case 1 -> 1;
        case 2 -> 2;
        case 3 -> 3;
}

Java 13의 switch 연산자

int ans = switch(num){
    case 1 -> yield 1;// return을 yield명령어로 사용 가능.
    case 2 -> yield 2; 
}
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함