티스토리 뷰
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 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;
}
'[백기선live-study]' 카테고리의 다른 글
1주차 과제: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가. (0) | 2021.01.08 |
---|---|
2주차 과제: 자바 데이터 타입, 변수 그리고 배열 (0) | 2021.01.08 |