[Do it! 자바 프로그래밍 입문]연산자
업데이트:
항과 연산자
항(operand): 연산에 사용되는 값(단항,이항,삼항)
연산자(Operator) : 항을 이용하여 연산하는 기호
대입 연산자
변수에 값을 대입 하는 연산자
왼쪽 변수에 오른쪽 변수를 대입한다.
우선 순위가 가장 낮다.
부호 연산자
부호를 바꾸는 연산자
산술 연산자
+, -, *
/ : 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구하는 연산자
% : 앞에 있는 항에서 뒤에 있는 항을 나누어나머지를 구하는 연산자
증가 감소 연산자
단항 연산자로 1만큼 더하거나 1만큼 뺄 때 사용하는 연산자
++ : 항의 값에 1을 더한다.
val = ++num; : 먼저 num 값이 1 증가한 후 val 변수에 대입
val = num++; : val 변수에 기존 num 값을 먼저 대입한 후 num 값 1 증가
– : 항의 값에서 1을 뺀다.
val = –num; : 먼저 num 값이 1 감소한 후 val 변수에 대입
val = num–; : val변수에 기존 num 값을 먼저 대입한 후 num 값 1 감소
논리 연산자
관계 연산자와 혼합하여 많이 사용되며, 결과가 true, false로 반환됨
&& : 두 항이 모두 참인 경우에만 결과 값이 참, 아니면 거짓
|| : 두 항 중 하나의 참만 있어도 결과 값이 참, 두 항 모두 거짓이면 거짓
! : 참인 경우 거짓으로, 거짓인 경우 참으로 바꿈
- 단락 회로 평가(short circuit evaluation)
논리 곱(&&)은 두 항이 모두 true 일때만 결과가 true
=> 앞의 항이 flase이면 뒤 항의 결과를 평가하지 않아도 false임
논리 합(||)은 두 항이 모두 false일 때만 결과가 false
=> 앞의 항의 true이면 뒤 항의 결과를 평가하지 않아도 true임
EX
public class Example1 {
public static void main(String args[]) {
int num1 = 10;
int i=2;
boolean Value=((num1 = num1+10)<10) && ((i=i+2)<10);
// num1=20, 10보다 작지 않음.(F) 뒤의 연산은 실행되지 않음. i=2;
Value=((num1=num1+10)>10) || ((i=i+2)<10);
// num1=30, 10보다 큼(T) 뒤의 연산은 실행되지 않음. i=2;
}
}
복합 대입 연산자
다른 연산자와 대입 연산자를 같이 사용
+=, -=, *=, /=, %=
비트 연산자와 대입 연사자를 같이 사용할 수 있음
«=, =», »>=, &=, !=, ^=
조건 연산자
삼항 연산자
(조건식)?결과1(T):결과2(F)
비트 연산자
~ : 비트의 반전 (1의 보수)
& : 비트 단위 AND (두 비트가 모두 1인 경우 1 아니면 0)
| : 비트 단위 OR (두 비트가 모두 0인 경우 0 아니면 1)
^ : 비트 단위 XOR (두개의 비트가 서로 다른 경우에 1 반환)
« : 왼쪽 shift (2의 n승 만큼 증가,뒤에 0으로 채워짐)
>> : 오른쪽 shift (2의 n승 만큼 나눠짐, 부호비트가 0인경우 0, 1인경우 1로 채워짐)
>>> : 오른쪽 shift(부호에 상관없이 0으로 채워짐)
주의
«,»,>>> 해도 변수의 값은 변하지 않는다
public class Example1 {
public static void main(String args[]) {
int num = 5;
System.out.println(num<<1); //10
System.out.println(num); //5
}
}
연산자 우선순위
일차식 ()[]
단항 ! ++ -- + -
산술 % /
산술 + -
비트 이동 << >>
관계 < > <= >=
관계 == !=
비트 곱 &
비트 차 ^
비트 합 |
논리 곱 &&
논리 합 ||
조건 ? :
대입 = += -= *= /= %=
공유하기
Twitter Google+ LinkedIn
댓글남기기