2012년 04월 04일
자바 4장 - 연산자
연산자 우선순위는 외울 필요가 없다.
다만 ()가 최우선이며 *, /가 +, -보다 먼저라는 것만 알자.
대입 및 산술 연산자(=, +, -, *, /, %)
----------------------------------------------------
/ 연산은 실수와 정수를 계산할 경우 형 변환에 의해
정수가 실수로 바뀌며 % 연산은 실수 간에는 사용할 수 없다.
----------------------------------------------------
복합 대입 연산자
----------------------------------------------------
+=, -=, *=, /=, %=
ex)
num = num + 1 -> num += 1
num = num % 2 -> num %= 2
----------------------------------------------------
관계 연산자
----------------------------------------------------
>, >=, <, <=, ==, !=
좌측의 값이 기준이므로 >의 경우 '크다'라는 뜻이 된다.
----------------------------------------------------
논리 연산자
----------------------------------------------------
&&, ||, !
각각 and, or, not을 의미한다
----------------------------------------------------
논리 연산자와 Short-Circuit Evaluation(Lazy Evaluation)
----------------------------------------------------
빠른 연산을 위해 쓸데없는 연산은 하지 않고 지나치는 방법이다.
ex)
int num1 = 0, num2 = 0;
boolean result
result = (num1 += 10) < 0 && (num2 += 10) > 0;
위의 경우 num1 += 10 < 0 문장이 이미 거짓이기에 뒤에 있는
num2 += 10 > 0 문장을 아예 연산하지 않는다.
따라서 num2는 10이 아니라 계속 0인 채로 있게 된다.
즉, && 연산의 경우 앞 문장이 거짓이면 뒷 문장을 연산하지 않고
|| 연산의 경우는 앞 문장이 참이면 뒷 문장을 연산하지 않는다.
----------------------------------------------------
부호 연산자로서의 +, -
----------------------------------------------------
산술 연산이 아닌 부호 연산자로서 +, -의 의미는 다음과 같다
- : 부호를 바꾸는 역할을 한다.
+ : 딱히 하는 일이 없다(?)
하지만 +도 엄연한 연산이라 다음 문장은 에러가 발생하게 된다.
short n2 = 7;
short n3 = n2 //성공
short n3 = +n2; //에러
정수는 연산이 이뤄지기에 앞서 int형으로 변환된다.
따라서 +n2는 int형이 되고 이것을 short형인 n3에 대입하려 하니
에러가 발생한다.
short n3 = (short)+n2 의 경우에는 에러가 발생하지 않는다.
----------------------------------------------------
증가, 감소 연산자
----------------------------------------------------
++ : 피연산자에 저장된 값에 1을 더해준다.
-- : 피연산자에 저장된 값에서 1을 빼준다.
증감연산자가 피연산자의 앞에 붙으면 증감 연산을 먼저 하고
뒤에 붙으면 다음 행으로 넘어가면서 변경된다.
----------------------------------------------------
비트 연산자
----------------------------------------------------
& : 비트 단위로 and 연산
| : 비트 단위로 or 연산
^ : 비트 연위로 xor 연산
~ : 비트 단위로 not 연산
비트 단위 연산은 2진수로 변환된 후 수행되며
xor 연산은 두 피연산자의 비트가 같을 때 0을
다를 때 1을 반환하는 연산이다.
----------------------------------------------------
비트 쉬프트(Shift) 연산자
----------------------------------------------------
<< :
>> :
>>> :
다음에 계속
# by | 2012/04/04 16:49 | Java | 트랙백 | 덧글(0)



