프로그래밍 공부
카테고리
작성일
2022. 8. 10. 17:46
작성자
WDmil
728x90

연산자

- 상수나 변수 값을 조작 할 수 있도록 해주는 것을 연산이라고 하며 어떠한 연산을 할 것인지에 대한 기호로 연산자라는 것을 사용한다.

- 일반적인 산수에서 사용하는 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

오른쪽 시프트 = 2로 나누기 왼쪽으로 시프트 = 2로 곱하기 시프트가 2가 되면 2^2 만큼 나누거나 곱한 효과가 있다.

관계 연산자

- > : 좌측의 값이 우측의 값보다 크면 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를 반환한다.

10 은 20 보다 작기 때문레 false로 200을 반환

배정 대입 연산자

밑 예시의 오른쪽 계산식을 왼쪽으로 단축해서 사용 할 수 있는것을 가리켜서 이야기한다.

-  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에 데이터를 집어넣고 연산을 진행하여 결과가 달라지게 된다.

728x90

'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