728x90
반응형
1. 산술 연산자
+, -, *, /, %로 더하기, 빼기, 곱하기, 나누기, 나머지 몫 연산자로 나눠진다.
우리가 아는 사칙연산을 생각하면 된다.
- +: 더하기
- -: 빼기
- *: 곱하기
- /: 나누기
- %: 나눈 후 나머지 몫
int num = 15;
System.out.println(num + 2); // 17
System.out.println(num - 2); // 3
System.out.println(num * 2); // 30
System.out.println(num / 2); // 7.5
System.out.println(num % 4); // 15/4 의 나머지는 3
2. 증감 연산자
++: 항에 1을 더한다.
--: 항에 1을 뺀다.
증가/감소 연산자 위치에 따라 다른 의미를 가지니 헷갈리지말고 사용해야함.
//앞에 있는 경우 먼저 계산을 하고 System.out.println()을 수행한다.
int num = 3;
System.out.println(++num); // 4
//계산하고 수행
num = num + 1;
Sysetm.out.println(num);
//뒤에 있는 경우 System.out.println()을 수행하고, 계산한다.
num = 3;
System.out.println(num++); // 3
// 수행하고 계산.
Sysetm.out.println(num);
num = num + 1;
3. 단항 연산자
항이 1개인 연산자를 뜻함
++i
4. 이항 연산자
항이 2개인 연산자를 뜻함
num1 + num2
5. 조건 연산자
- 삼항 연산자
- 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨
- if (조건문)을 간단히 표현할 때 사용 할 수 있음
- 조건식?결과1:결과2 => 조건식이 참이면 결과1, 조건식이 거짓이면 결과2
int x = 3
int y = 5
x>y ? x: y //5
6. 부호 연산자
부호를 변경해주는 연산자 (+ 또는 -)
int num = 1;
int num2 = -2;
int num3 = -num2;
System.out.println(num); //1
System.out.println(num2); //-2
System.out.println(num3); //2
7. 대입 연산자
우선 순위가 가장 낮은 연산자로 왼쪽 변수에 오른쪽 값을 대입하는 연산자
double dNum = 1.2;
7.1. 복합 대입 연산자
'산술 연산자'와 같이 사용하여 아래와 같이 표현이 가능하다.
int num = 15;
num += 3; // num = num + 3; 와 동일
num -= 4; // num = num - 4; 와 동일
num *= 2; // num = num * 2; 와 동일
num /= 3; // num = num / 3; 와 동일
num %= 3; // num = num % 3; 와 동일
8. 관계 연산자
수학에서 사용하는 >, <, >=, <=와 같다.
- > : 왼쪽항이 크다
- < : 왼쪽항이 작다
- >= : 왼쪽항이 크거나 같다.
- <= : 왼쪽항이 작거나 같다.
int num1 = 5;
int num2 = 3;
boolean value = (num1 > num2);
System.out.println(value); // ture
System.out.println(num1 < num2); // false
System.out.println(num1 >= num2); // true
System.out.println(num1 <= num2); // false
System.out.println(num1 == num2); //false
System.out.println(num1 != num2); //true
9. 논리 연산자
논리 연산자는 &&, ||, ! 로 나눠진다.
- &&;: and 조건으로, 2개의 값이 모두 true일 때 만 true이다. 나머지는 false
- ||: or 조건으로, 1개의 값만 true이면 모두 true다. 나머지는 false
- !: not 조건으로, true를 false로, false를 true로 바꿔준다.
int num1 = 10;
int num2 = 20;
boolean flag = (num1 > 0) && (num2 > 0);
System.out.println(flag); //true
flag = (num1 < 0) && (num2 > 0);
System.out.println(flag); //false
flag = (num1 > 0) || (num2 > 0);
System.out.println(flag); //true
flag = (num1 < 0) || (num2 > 0);
System.out.println(flag); //true
flag = !(num1 > 0);
System.out.println(flag); //false
9.1. 논리 연산에서 모든 항이 실행되지 않는 경우 - 단락 회로 평가 (short circuit evaluation)
- 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true
- -- 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
- 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false
- -- 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
int num1 = 10;
int i = 2;
boolean value = ((num1 = num1 + 10 ) < 10) && ( ( i = i + 2 ) < 10);
System.out.println(value); //false
System.out.println(num1); //20
System.out.println(i); //2
value = ((num1 = num1 + 10 ) < 10) || ( ( i = i + 2 ) < 10);
System.out.println(value); //true
System.out.println(num1); //30
System.out.println(i); //4
10. 비트 연산자
- 대입연산자와 다른 연산자가 함께 쓰임
- 마스크 : 특정 비트를 가리고 몇 개의 비트 값만 사용할 때
- 비트켜기 : 특정 비트들만을 1로 설정해서 사용하고 싶을 때
예) & 00001111 ( 하위 4비트 중 1인 비트만 꺼내기) - 비트끄기 : 특정 비트들만을 0으로 설정해서 사용하고 싶을 때
예) | 11110000 ( 하위 4비트 중 0 인 비트만 0으로 만들기) - 비트 토글 : 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때
x << y | 정수 x의 각 비트를 y만큼 왼쪽으로 이동시킵니다. (빈자리는 0으로 채워집니다.) |
x >> y | 정수 x의 각 비트를 y만큼 오른쪽으로 이동시킵니다. (빈자리는 정수 a의 최상위 부호비트와 같은 값으로 채워집니다. |
x >>> y | 정수 x의 각 비트를 y만큼 오른쪽으로 이동시킵니다. (빈자리는 0으로 채워집니다.) |
System.out.println(2<<3); //16
System.out.println(16>>3); //2
System.out.println(-16>>3); //-2
System.out.println(-16>>>3); //536870910
& | AND | 두 비트 모두 1일 경우에만 연산 결과가 1 |
| | OR | 두 비트 중 하나만 1일 경우에만 연산결과가 1 |
^ | XOR | 두 비트중 하나는 1이고 다른 하나가 0일경우에만 연산결과가 1 |
~ | NOT | 비트 반전(보수) |
System.out.println(15 & 25); //9
System.out.println(15 | 25); //31
System.out.println(15 ^ 25); //22
System.out.println(~25); //-26
728x90
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 반복문 (while / do-while / for) (0) | 2023.02.26 |
---|---|
[JAVA] 조건문 (if / else if / switch-case ) (0) | 2023.02.26 |
[JAVA] 변수와 변하지 않는 상수와 리터럴, 변수의 형 변환 (0) | 2023.02.26 |
[JAVA] 자료형(Data Type) (0) | 2023.02.26 |
[JAVA] Hello,World (0) | 2023.02.25 |
댓글