[Do it! 자바 프로그래밍 입문]연산자

업데이트:


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
	}
}


연산자 우선순위

일차식  ()[]
단항  ! ++ -- + -
산술  % /
산술  + -
비트 이동  << >>
관계  < > <= >=
관계  == !=
비트 곱  &
비트 차  ^
비트 합  |
논리 곱  &&
논리 합  ||
조건  ? :
대입  = += -= *= /= %=



댓글남기기