JAVA 연산자
연산자 우선순위
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) 연산자는
a |
b |
AND |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
조건 값중 하나의 값이라도 0이 있으면 0이됩니다.
AND 와 곱하기 는 비슷하다 라고 생각하시면됩니다.
다음은 |(OR)
a |
b |
OR |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
조건 값중 하나의 값이라도 1이 있으면 1이 됩니다.
AND 가 곱이라면 OR는 더하기 라고 생각하시면 됩니다.
마지막으로 ^(NOT)
a |
NOT |
0 |
1 |
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증가시킨다 입니다.