연산자
연산 → 연산을 수행하는 기호
피연산자 → 연산에 참여하는 변수나 상수 값
▶ 단항 연산자
1) 논리 부정 연산자 ( ! )
boolean형의 결과값을 부정하는 연산자입니다.
바꾸고 싶은 연산자 앞에 '!'부호를 넣어주면 자동으로 연산자의 속성이 바뀝니다.
'!'연산기호를 사용해 긍정(True) → 부정(False)으로, 부정(False) → 긍정(True)으로 바꿀 수 있습니다.
또한 조건문과 반복문의 조건식에 사용되며 조건식을 좀 더 효율적으로 만들 수 있다는 장점을 가지고 있습니다.
<예제 1>
2) 비트 부정 연산자 ( ~ )
숫자에서 비트 단위를 모두 부정하는 연산자입니다.
비트가 1 → 0 으로 0 → 1로 변경되는 것입니다.
ex) 정수 4
비트 값 : 0100 → 1011
3) 부호 연산자
부호 연산자에는 +,-가 있습니다.
boolean과 char를 제외한 기본형 타입에서 쓸 수 있습니다.
<예제 1>
4) 증감연산자
++ i → 선증가
- - i → 선감소
i ++ → 후증가
i - - → 후감소
선증가(증가시킨 후 연산을 하는가)
후증가(연산을 한 후에 증가를 시키는가)
BUT, 단독으로 쓰였을 때는 값이 같습니다.
<예제 1>
<예제 2>
▶산술연산자
산술연산자란 쉽게 말해서 사칙연산이라고 생각하시면 됩니다.
<예제 1>
▶시프트연산자
시프트 연산자란 말 그대로 bit를 shift 시켜주는 것입니다.
<< 왼쪽으로 이동, 새로 생긴 칸은 0으로 채움
>>오른쪽으로 이동, 새로 생긴 칸은 음수의 경우 1로 양수의 경우 0으로 채움
>>> 새로 생긴칸은 무조건 0으로 채움
좀 더 쉽게 말하자면
'A << 2' 라는 수식이 있을 때,
A 라는 녀석의 비트 값을 2 만큼 왼쪽으로 이동시키겠다는 것입니다.
<예제 1>
A
5 << 2 연산
0 0 0 0 0 1 0 1
0 0 0 1 0 1 0 0 왼쪽으로 2칸 이동 = 20
5 >> 3 연산
0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 오른쪽으로 3칸 이동 = 0
5 >>> 4 연산
0 0 0 0 0 1 0 1
0 0 0 0 0 0 0 0 오른쪽으로 4칸 이동 = 0
B
-3 << 2 연산
1 1 1 1 1 1 0 1
1 1 1 1 0 1 0 0 왼쪽으로 2칸 이동 = -12
-3 >> 3 연산
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1 오른쪽으로 3칸 이동 = -1
-3 >>> 4 연산
1 1 1 1 1 1 0 1
0 0 0 0 1 1 1 1 오른쪽으로 4칸 이동 = 15
Q. 268435455가 나오는 이유는 자바에서 시프트 연산을 할 때 int 이하의 자료형에서 시프트 연산이 일어날 경우 자동으로 int형 변수로 변환하여 시프트 연산을 하게 됩니다.
그래서 short로 하든, byte로 하든 결국엔 int로 변하게 됩니다.
▶비교연산자
1) <, > 초과와 미만을 구분합니다.
2) <=, >= 이상과 이하를 구분합니다.
3) !=
ex) a != b a와 b가 다를 때를 말합니다.
4) ==
ex) a == b a와 b가 같을 때를 말합니다.
▶논리연산자
논리 연산자는 &&(AND), ||(OR), !(NOT) 3개로 이루어져 있으며, 반드시 결과가 참(True)과 거짓(False)로 이루어져 있어야 합니다.
1) && (AND) : 모두 참(True)인 경우만 참 나머지는 거짓(False)
2) || (OR) : 모두 참(True)이거나 둘중 하나만 참(True)이여도 참
3) ! (NOT) : 논리 값과 반대 (참 → 거짓, 거짓 → 참)
<예제 1>
1번 &&(AND연산) 둘 다 참이어야 참, 하나라도 거짓이면 거짓
num1(10)이 20보다 작고(참), num2(20)가 5보다 크다.(참)
둘 다 참이므로 → True
2번 ||(OR연산) 하나만 참이면 참, 둘 다 거짓이어야 거짓
num1(10)이 20보다 작으며(참), num2(20)가 30보다 크다.(거짓)
하나만 참이어도 참이므로 → True
3번 ! (NOT연산) 논리 값과 반대
원래 논리 값이 True이므로 → False
▶조건 연산자
조건 연산자는 삼항 연산자라고도 합니다.
기본 식이
code1?code2:code3 이며
code1의 식이 참이면 code2의 값이 출력되고
code1의 식이 거짓이면 code3의 값이 출력됩니다.
<예제 1>
▶복합 대입 연산자
A += B ↔ A = A + B
A -= B ↔ A = A - B
A *= B ↔ A = A * B
A /= B ↔ A = A / B
A %= B ↔ A = A % B
<예제 1>
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
[JAVA] 반복문(1) while문 (0) | 2017.07.21 |
---|---|
[JAVA] 조건문 (2) switch문 (0) | 2017.07.19 |
[JAVA] 조건문 (1) if문 (0) | 2017.07.19 |
[JAVA] 변수와 자료형 (0) | 2017.07.15 |
[JAVA] 자바란? (0) | 2017.07.15 |