💡산술연산자
int a = 10; int b = 5;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
💡대입연산자
- 하나의 코드로 생각해 결과 값들을 이어서 작성하였습니다.
int a = 10; int b = 5;
a += b;
System.out.println(a);
a -= b;
System.out.println(a);
a *= b;
System.out.println(a);
a /= b;
System.out.println(a);
a %= b;
System.out.println(a);
💡관계연산자
- 일반적으로 우리가 수학시간에 배운 부등호로 boolean값을 반환한다.
int a = 10; int b = 5; int c = 10;
System.out.println(a > b);
System.out.println(a >= b);
System.out.println(a == b);
System.out.println(a != b);
System.out.println(a == c);
System.out.println(a != c);
💡논리연산자
연산자 | 의미 |
---|
&& (AND) | 둘 다 true이면 true 아니라면 false |
ㅣㅣ (OR) | 둘 중에 하나라도 true이면 true |
! (NOT) | true에 붙으면 false, false에 붙으면 true |
boolean a = true; boolean b = false;
System.out.println(a && a);
System.out.println(a && b);
System.out.println(b && b);
System.out.println(a || a);
System.out.println(a || b);
System.out.println(b || b);
System.out.println(!a);
System.out.println(!b);
💡증감연산자
연산자 | 의미 |
---|
x++ | 해당 연산을 수행한 후에 피연산자 값 1 증가 |
++x | 피연산자 값 1 증가 후 해당 연산 수행 |
x-- | 해당 연산을 수행한 후에 피연산자 값 1 감소 |
--x | 피연산자 값 1 감소 후 해당 연산 수행 |
int a = 10;
System.out.println(a++)
System.out.println(a)
int b = 10;
System.out.println(++b)
💡비트 연산자
- 논리 연산자와 연산하는 방법이 매우 비슷하지만 기호가 다르고 ^ (배타적 OR)이 추가된다.
연산자 | 의미 |
---|
& (AND) | 두 비트 모두 1일 경우에만 연산 결과가 1 |
ㅣ (OR) | 두 비트 중 하나만 1일 경우에만 연산결과가 1 |
^ (배타적 OR) | 두 비트중 하나는 1이고 다른 하나가 0일경우에만 연산결과가 1 |
~ (NOT) | 비트 반전(보수) |
💡시프트(비트 이동)연산자
연산자 | 의미 |
---|
x<<y | x의 각 비트를 y만큼 왼쪽으로 이동시킨다. (빈자리는 0으로 채워진다.) |
x>>y | x의 각 비트를 y만큼 오른쪽으로 이동시킨다. (빈자리는 x의 최상위 부호비트와 같은 값으로 채워진다.) |
x>>>y | x의 각 비트를 y만큼 오른쪽으로 이동시킨다. (빈자리는 0으로 채워진다.) |
ex)
밑줄은 원래 있던 수, 색칠된 글씨는 추가된 수
2<<3
00000000 00000000 00000000 00000010 -> 2의 이진수
00000000 00000000 00000000 00010000
-> 2의 각 비트를 3만큼 왼쪽으로 이동
16>>3
00000000 00000000 00000000 00010000 -> 16의 이진수
00000000 00000000 00000000 00000010
-> 부호비트는 +를 의미 0(파란색 글씨)은 고정하고 오른쪽으로 세칸 옮겼으니 0 2개(빨간색 글씨) 추가
-16>>>3
11111111 11111111 11111111 11110000 -> -16의 이진수
00011111 11111111 11111111 11111110
-> -16의 부호비트는 1이지만 상관없이 빈자리에 0으로 채움
💡조건(삼항) 연산자
- 조건식 ? 반환값1 : 반환값2
- 물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환한다.
int num1 = 1; int num2 = 5;
int result = (num1 - num2 > 0) ? num1 : num2;
System.out.println("두 정수 중 더 큰 수는 " + result + "이다.");