본문 바로가기
프로그래밍 언어/JAVA(자바) 기초

6.자바의 연산자들(대입,부호,산술,복합대입,증감연산자)

by lroot 2022. 5. 16.
728x90
반응형

형과 연산자

- 형(operand) : 연산에 사용되는 값

- 연산자(operator) : 형을 이용하여 연산하는 기호

 

대입 연산자(Assignment operator)

- 변수에 다른 변수나 값을 대입하는 연산자

- 이항 연산자 중 우선 순위가 가장 낮은 연산자들

- 왼쪽 변수 = 오른쪽 변수(또는 식, 값)

 

부호 연산자

- 단항 연산자

- 변수의 부호를 유지하거나(+) 바꿈(-)

- 실제 변수의 부호가 변하려면 대입 연산자를 사용해야 함

 

산술 연산자

- 사칙 연산자

연산자 기능
+ 두 항을 더합니다 5 + 3
- 옆에 있는 항에서 뒤에 있는 항을 뺍니다 5 - 3
* 두 항을 곱합니다 5 * 3
/ 앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구합니다 5 / 3
% 앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구합니다 5 % 3

 

복합 대입 연산자

- 대입 연산자와 다른 연산자가 함께 쓰임

연산자 기능
+= 두 항의 값을 더해서 왼쪽 항에 대입합니다. num1 += 2;
num1 = num1 + 2; 와 같음
-= 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입합니다. num1 -= 2;
num1 = num1 - 2; 와 같음
*= 두 항의 값을 곱해서 왼쪽 항에 대입합니다. num1 *= 2;
num1 = num1 * 2; 와 같음
/= 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입합니다. num1 /= 2;
num1 = num1 / 2; 와 같음
%= 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입합니다. num1 %= 2;
num1 = num1 % 2; 와 같음
<<= 비트를 왼쪽으로 이동하고 그 값을 왼쪽 항에 대입합니다. num1 <<=2;
num1 = num1 << 2; 와 같음
>>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입합니다(왼쪽에 채워지는 비트 값은 부호 비트와 동일합니다.) num1 >>=2;
num1 = num1 >> 2; 와 같음
>>>= 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입합니다. num1 >>>= 2;
num1 = num1 >>> 2; 와 같음
&= 두 항의 & 비트 연산 후 그 값을 왼쪽 항에 대입합니다. num1 &= num2;
num1 = num1 & num2; 와 같음
|= 두 항의 | 비트 연산 후 그 값을 왼쪽 항에 대입합니다. num1 |= num2;
num1 = num1 | num2; 와 같음
^= 두 항의 ^ 비트 연산 후 그 값을 왼쪽 항에 대입합니다. num1 ^= num2;
num1 num1 ^num2; 와 같음

 

증가, 감소 연산자

- 단항 연산자

- 변수의 값을 1 더하거나 1 뺄때 사용

- 연산자가 항의 앞에 있는가 뒤에 있는가에 따라 연산 시점과 결과가 달라짐

- 문장(statement)의 끝을(;)을 기준으로 연산 시점을 생각해야 함

연산자 기능
++ 항의 값에 1을 더합니다 val = ++num; // 먼저 num값이 1 증가한 후 val 변수에 대입 
val = num++; // val 변수에 기존 num 값을 먼저 대입한 후 num값 1 증가
-- 항의 값에 1을 뺍니다 val = --num; // 먼저 num값이 1 감소
val = num--; // val변수에 기존 num 값을 먼저 대입한 후 num값 1 감소

 

예제)

public class OperatorTest {

public static void main(String[] args) {

int a = 150;
int b = ++a;

System.out.println(a);
System.out.println(b);
System.out.println();

int c = 150;
int d = c++;

System.out.println(c);
System.out.println(d);
System.out.println();

int e = 150;
int f = --e;

System.out.println(e);
System.out.println(f);
System.out.println();

int g = 150;
int h = g--;

System.out.println(g);
System.out.println(h);


        }

}

댓글