JAVA/이론

JAVA 연산자

무늬만  2015. 9. 29. 02:16





연산자 우선순위 

 1) 최우선 연산자

 . [ ] ( ) 

 2)단항 연산자

! ~ ++ -

 3)산술 연산자 

+ - * / % 

 4)시프트 연산자

<<  >>  >>> 

 5)관계 연산자 

 > < >= <= == !=

 6)비트 연산자 

& ^ | 

 7)논리 연산자 

&& || 

 8)삼항 연산자 

조건항? 항1:항2 

 9)배정 대입 연산자 

 = += -= *= /= %= <<= >>= ^= &= |= 

 10)후위형 증감 연산자 

++ -- 

 11)순차 연산자 

, 


1) 최우선 연산자

어떤 연산자 보다 가장 우선으로 실행되는 연산자 입니다.

우선 . 은 지금까지 JAVA 를 하면서 System.out.println("Hello");

라는 문장을 많이 봐왔을 것이고, 출력하는 문장이라는것쯤은 

누구나 알수있을것이라고 생각이됩니다. 

여기서도 . 이 들어갑니다. 

뭐 여러책들이나 여러 설명을 보면 자세히 설명되어있지만

제가 생각한 것은 콕찝어 너 라는 걸로 설명을 이어하겟습니다.

System. < 시스템 안에 out. < 아웃  안에 println < 너 콕찝어 사용하겟다.

뭐 저는 이런 걸로 이해하면 더쉽다고 생각이 됩니다.


다음으로는 [ ] ( ) 괄호 라고 불리는데 

연산자 를 우선적으로 처리하기 위해서는 괄호를 치게됩니다. 

괄호는 간단히 알거라 생각이 되니 pass 하도록 하겟습니다.


2) 단항 연산자

우선 ! 이놈은 절대 부정 입니다. 1의 ! 는 0 입니다.

다음으로 ~ 비트 부정입니다. 우리가 전달하고자 하는 데이터는 모두 2진수로 되어있습니다.  때문에 비트를 부정한다는것 모든데이터를 부정한다 와 같은말입니다.

선위형 증감 연산자 ++ -- 이렇게 쓰는데요

이건 후위형 떄 한번에 설명해드리도록 하겟습니다.


3)산술 연산자 

 다들 아시죠 ? + 더하기 - 빼기 /나누기 *곱하기 입니다.


4) 시프트 연산자

 2진화된 데이터를 오른쪽 혹은 왼쪽 으로 미룬다 이런개념입니다.

5) 관계 연산자 

 산술 연산자 만큼이나 많이 사용되는 연산자입니다.

 예를들어 a>b 이면 a가 크다 로표현 합니다.

 반면에 a<b 이면 a가 작다로 표현합니다.

나머지를 표현하자면 > 크다 < 작다 >=크거나 같다 <=작거나 같다 == 같다 != 같지 않다

라고 표현합니다. 프로그래밍 언어에서는 = 이놈은 대입연산자로 표현하고 같다고 표현할때는 == 와같이 사용합니다.


6)비트 연산자 

 &(AND) |(OR) ^(NOT) 으로 표현하며 

 우선 &(AND) 연산자는 

AND 

0 

0 

0 

조건 값중 하나의 값이라도 0이 있으면 0이됩니다.

AND 와 곱하기 는 비슷하다 라고 생각하시면됩니다.


다음은 |(OR)

 a

OR 

0 

1 

1 

조건 값중 하나의 값이라도 1이 있으면 1이 됩니다.

AND 가 곱이라면 OR는 더하기 라고 생각하시면 됩니다.


마지막으로 ^(NOT)


NOT 

1 

0 


^(NOT) 은 부정을 의미합니다.

0이면 1이고 1이면 0이 됩니다.


7) 논리 연산자 

AND 가뭐냐 

 


여기 버튼이 2개가 있습니다.


빨간 버튼이 있는 버튼 을 a 로 지정하고 


파란 버튼은 b로 지정 하겟습니다.


버튼을 눌러 전구를 켠다면 


AND 연산으로 했을때 


a=on b=off (a=1 b=0)

이라면, 

a&&b 가되겟습니다.




전구는 켜지지 않습니다. 


하지만 스위치를 a=on b=on (a=1,b=1) 

을 해준다면 

 



전구가 켜집니다 .


여기서 알수 있듯이 AND 연산자는 모든 값이 1일때 (참 혹은 true) 


참 값을 가집니다 


더말씀드리 자면 true&& false =  false; 라는것이고 


 true&& true =  true; 라는겁니다.


*어느한쪽이래도  false 가있으면 거짓


자 그다음으로 OR 연산자 입니다. 


같은 방식으로 스위치 a=1 b=0 을 넣었을때 

a||b 


전구는 켜집니다.


a=1 b=1 도 마찬가지로 켜지므로 


OR 은  true||true = true;


 true|| false=true; 입니다.


즉, 어느한쪽이래도 참값을 가진다면 참을 출력합니다.


그럼 거짓일 경우는 없을까요 ? 


 false|| false= false; 라는 건 당연히 생각하시리라 봅니다.


마지막으로 NOT 입니다.


이놈은 청개구리 라서 1이 들어가면 0이 나옵니다.

 

on 을 누르면 off 가되고 off를 누르면 on 이 되는것과 같습니다.


a =on;

!a 

결과는 off 입니다. 



8) 삼항 연산자 

 a=10 b=3

a>b ? 참:거짓 a의 값이 크기때문에 참을 출력합니다.


9)배정 대입 연산자

a+=b 는 a=a+b 와같다 라는겁니다. 또한 = 는 a=b일때 a를 b에 대입한다와 같습니다.


10)후위형 증감 연산자

a++; 는 수식후에 a를 1증가시킨다 

++a;는 수식전에 a를 1증가시킨다  입니다.