Jay's Developer Note

[JAVA] 자바 언어 기본 문법 - 3(연산자) 본문

JAVA

[JAVA] 자바 언어 기본 문법 - 3(연산자)

Jay(J) 2022. 2. 10. 00:01
728x90

연산자

연산은 하나 이상의 피연산자를 연산자의 정의에 따라 계산하여 하나의 결괏값을 도출해 내는 과정이다.

연산자를 이용한 결과는 언제나 하나이다.

산술 연산자

가감승제를 표현하는 연산자이다.

int a = 20;
int b = 10;
int result;

// 덧셈 연산자
result = a + b;	// result = 30
// 뺄셈 연산자
result = a - b;	// result = 10
// 곱셈 연산자
result = a * b;	// result = 200
// 나눗셈 연산자
result = a / b;	// result = 2
// 나머지 연산자
result = a % b;	// result = 0
비교 연산자

피연산자의 크기나 객체의 타입 비교 시 사용한다. 결과는 논리형으로 TRUE/FALSE 를 반환한다.

int a = 20;
int b = 10;
boolean result;

// 크다
result = a > b;		// result = true
// 크거나 같다
result = a >= b;	// result = true
// 작다
result = a < b;		// result = false
// 작거나 같다
result = a <= b;	// result = false
// 같다
result = a == b;	// result = false
// 같지 않다
result = a != b;	// result = true
논리 연산자

조건식이 TRUE/FALSE 인지를 판단하여 결과를 논리형으로 TRUE/FALSE 를 반환한다.

boolean a = true;
boolean b = false;
boolean result;

// a 와 b 가 모두 true 일 때만 true, 그 외는 false
result = a & b;		// result = false

// a 와 b 가 모두 true 일 때만 true, 그 외는 false
// a 가 false 인 경우 b 는 수행하지 않고 false 반환
result = a && b;	// result = false

// a 와 b 가 모두 false 일 때만 false, 그 외는 true
result = a | b;		// result = true

// a 와 b 가 모두 false 일 때만 false, 그 외는 true
// a 가 true 인 경우 b 는 수행하지 않고 true 반환
result = a || b;	// result = true

// b 의 값 Reversing, true 면 false, false 면 true
result = !b;		// result = true
증감 연산자

변수의 값에 1을 증가/감소시킨 후 변수에 다시 저장한다. 아래 나올 대입 연산자의 +=/-= 와 같은 기능을 수행한다.

int a = 20;
int result;

// 수식 처리 후 a 값 1 증가
result = a++;	// result = 20, a = 21
// a 값 1 증가 후 수식 처리
result = ++a;	// result = 21, a = 21
// 수식 처리 후 a 값 1 감소
result = a--;	// result = 20, a = 19
// a 값 1 감소 후 수식 처리
result = --a;	// result = 19, a = 19
비트 연산자

피연산자의 비트 별로 연산을 수행한다. 실수형을 제외한 산술 데이터를 취한다.

// a 와 b 의 비트 별로 두 비트가 모두 1 이면 1, 그 외에는 0
// AND 연산
00000110 &
11111101;
00000100	// result

// a 와 b 의 비트 별로 두 비트가 모두 0 이면 0, 그 외에는 1
// OR 연산
00000110 |
00001000;
00001110	// result

// a 와 b 의 비트 별로 두 비트가 서로 다르면 1, 같으면 0
// XOR 연산(Exclusive OR)
00000110 ^
00001111;
00001001	// result

// 각 비트 반전
~00000110;
11111001	// result

// a 의 비트를 b 비트 수만큼 우측으로 이동
00010100 >> 2;
00000101	// result

// a 의 비트를 b 비트 수만큼 좌측으로 이동
00010100 << 2;
01010000	// result
대입 연산자

우변(변수, 상수, 수식, 함수 등)의 최종 결과를 좌변(변수)에 대입(저장)하는 연산자다. '같음'이 아니라 '대입'이다.

int a = 20;
int b = 10;

// b 값을 a 에 대입
a = b;	// a = 10

// a 값에 b 를 더한 후 a 에 대입
a += b;	// a = 20, 10 + 10

// a 값에서 b 를 뺀 후 a 에 대입
a -= b;	// a = 10, 20 - 10

// a 값에 b 를 곱한 후 a 에 대입
a *= b;	// a = 100, 10 * 10

// a 값을 b 를 나눈 후 a 에 대입
a /= b;	// a = 10, 100 / 10

// a 값을 b 로 나눈 나머지를 a 에 대입
a %= b;	// a = 0, 10 % 10
조건 연산자(삼항 연산자)

if-else 를 축약하여 표현한 연산자다. 첫 번째 피연산자는 논리식이어야 하고, 두 번째, 세 번째 피연산자는 같은 데이터형을 가져야 한다.

int a = 20;
int b = 10;
int result;

// 조건이 true 면 a 를 대입하고 false 면 b 를 대입한다.
result = (a > b) ? a : b;	// result = 20

/* if 문으로 변환
if (a > b) {
	result = a;
} else {
	result = b;
}
*/
연산자 우선순위

우선순위

 

728x90