연산자
- 상수나 변수 값을 조작 할 수 있도록 해주는 것을 연산이라고 하며 어떠한 연산을 할 것인지에 대한 기호로 연산자라는 것을 사용한다.
- 일반적인 산수에서 사용하는 4칙 연산 외에 프로그래밍에서 특별하게 사용하는 연산자도 있다.
- 연산자에는 연산자 우선 순위라는 것이 있으며 이러한 연산자 우선 순위를 잘 파악해야지만 원하는 결과를 얻어낼 수 있다.
연산자의 종류와 우선순위
- 최우선 연산자 : [ ] , ( )
- 단향 연산자 : !, ~ +, - ,++, -- , (cast)
- 산술 연산자 : +, -, *, /, %
- 시프트 연산자 : <<, >>, >>>
- 관계 연산자 : >, < , >= , <= , == , !=
- 비트 연산자 : &, ^, |
- 논리 연산자 : &, |, &, ||
- 삼항 연산자 : 조건항 ? 항1 : 항2
- 배정 대입 연산자 : =, += , -=, *=, /=, %=, <<=, >>=, ^=, &=
- 후위형 증감 연산자 : ++/--
항 한개 또는 메모리 상의 값을 가지고 나오는 연산자가 가장 우선시 되고 항 한개에 대한 연산이 위쪽, 두개가 아래쪽 위 종류는 위에서 아래쪽으로 갈수록 더 우선순위가 낮다
최우선 연산자
= . : 메모리에 생성된 객체의 맴버에 접근 등 특정 매개체의 하위에 접근할 떄 사용하는 연산자
= [ ] : 배열에서 요소에 접근하고자 할 때 사용하는 연산자
- ( ) : 수식에서 연산의 우선 순위를 조장하고자 할 때 사용
단항 연산자
- ! : true를 false로 false를 true로 변경하는 연산자
- ~ : 숫자의 비트를 0은 1 로, 1은 0으로 바꾸는 연산자
- +, - : 숫자의 부호를 변경해주는 연산자.
- ++ , -- : 값을 1 증가시키거나 감소시키는 연산자( 전위형 ) a = a + 1 , a = a - 1 대용으로 사용 가능
- (cast) : 값의 타입을 변경할 때 사용하는 연산자.
산술 연산자
- +, -, *, / : 일반적인 4칙연산
- % : 나머지를 구하는 연산자
시프트 연산자
- >> : 비트를 오른쪽으로 이동시켜주는 연산 ( 부호를 유지시켜 준다)
0000 1000 -> 0000 0100
1000 1000 -> 1100 0100
- << : 비트를 좌측으로 이동시켜주는 연산
0000 1000 -> 0001 0000
- >>> : 비트를 오른쪽으로 이동시켜주는 연산 ( 무조건 0으로 채워진다.)
0000 1000 -> 0000 0100
1000 1000 -> 0100 0100
관계 연산자
- > : 좌측의 값이 우측의 값보다 크면 true, 작거나 같으면 false
- < : 좌측의 값이 우측의 값보다 작으면 true, 크거나 같으면 false
- >= : 좌측의 값이 우측의 값보다 크거나같으면 true, 작으면 false
- <= : 좌측의 값이 우측의 값보다 작거나 같으면 true, 크면 false
- == : 좌측의 값과 우측의 값이 같으면 true, 다르면 false
- != : 좌측의 값과 우측의 값이 다르면 true, 같으면 false
비트 연산자
- & : 두 수를 2 진수로 변환한 후 각 자리를 비교하여 둘 다 1일 경우에만 1이 되는 연산자 ( AND 연산자 )
1000 1000 & 0000 1000 = 0000 1000
- | : 두 수를 2 진수로 변환한 후 각 자리를 비교하여 둘 중에 하나라도 1이면 1이 되는 연산자. ( OR 연산자 )
1000 1000 & 0000 1000 = 1000 1000
- ^ : 두 수를 2 진수로 변환한 후 각 자리를 비교하여 두 비트가 같으면 0, 다르면 1이 되는 연산자( XOR 연산자 )
1000 1000 ^ 0000 1000 = 1000 0000
2진수로 편집하여 작업하기 때문에 100 과 200의 AND, OR, XOR은 10진수 기준이 아닌 2진수 기준으로 계산 후 10진수로 변환 한다.
논리 연산자
- && : 연산자를 기준으로 좌측과 우측에 관계 연산자가 있을 경우 두 값이 모두 true 이면 true, 하나라도 false 이면 false를 반환한다. 좌측의 연산 결과 값이 false 라면 이 후의 연산은 수행하지 않고 false 를 반환한다.
10 < 4 && 10 > 3 : false. 10 > 3 연산은 수행하지 않는다.
- & : 기본적인 연산은 && 와 같지만 좌측 연산 결과 값이 false 라고 하더라도 이 후의 연산을 모두 수행한다.
10 < 4
& 10 > 3 : false, 10 > 3 연산도 수행한다.
- || : 연산자를 기준으로 좌측과 우측에 관계 연산자가 있을 경우 두 값 중 하나라도 true면 true, 둘 다 false라면 false를 반환한다. 좌측의 연산 결과 값이 true라면 이 후의 연산은 수행하지 않고 true 를 반환한다.
10 > 3 || 10 < 4 : true , 10 < 4 연산은 수행하지 않는다.
- | : 기본적인 연산은 || 와 같지만 좌측 연산 결과 값이 true라고 하더라도 이 후의 연산을 모두 수행한다.
3 항 연산자
- 조건항 ? 항1 : 항 2
- 조건항의 결과 값이 true 면 항1, false 면 항2를 반환한다.
배정 대입 연산자
밑 예시의 오른쪽 계산식을 왼쪽으로 단축해서 사용 할 수 있는것을 가리켜서 이야기한다.
- a + = 2 : a = a + 2
- a -+ 2 : a = a - 2
- a *= 2 : a = a * 2
- a /= 2 : a = a / 2
- a %= 2 : a = a % 2
- a <<= 2 : a = a << 2
- a >>= 2 : a = a >> 2
- a ^= 2 : a = a ^ 2
- a &= 2 : a = a & 2
- a != 2 : a = a | 2
후위형 중감 연산자
- -- / ++ : 자기 자신의 값을 하나 증가하거나 감소하는 연산자
- 기본적으로 전위형 증감 연산자와 같지만 차이점이 있다.
- 전위형 : ++a , --a, 연산작업을 수행 후 값을 전달 한다.
- 후위형 : a++ , a--, 값을 전달 한 후 연산을 수행 한다.
1번째는 연산을 진행 하고 k2에 데이터를 넣었다면
2번째는 k2에 데이터를 집어넣고 연산을 진행하여 결과가 달라지게 된다.
'JAVA' 카테고리의 다른 글
JAVA switch ~ case 문 (0) | 2022.08.10 |
---|---|
JAVA IF문 (0) | 2022.08.10 |
JAVA 표준입력 (0) | 2022.08.10 |
JAVA 변수와 자료형 (0) | 2022.08.10 |
JAVA의 상수 (0) | 2022.08.08 |