* 읽기전에 필독 / 우측 상단에 전구 모양을 눌러 light 모드로 바꾸어주세요. (검은 화면에 맞춰 글 쓰려니 어렵네요...)
연산자
자바에서 사용하는 다양한 연산자에 대해서 정리
항과 연산자
항(Operand) : 연산에 사용되는 값
연산자(Operator) : 항을 이용하여 연산하는 기호
| 연산자 | 설명 | 연산 예시 (추후 설명 예정) |
| 단항 연산자 | 항이 한 개인 연산자 | ++num |
| 이항 연산자 | 항이 두 개인 연산자 | num1 + num2 |
| 삼항 연산자 | 항이 세 개인 연산자 | (5 > 3) ? 1: 0 |
대입 연산자
변수에 값을 대입하는 연산자
연산의 결과를 변수에 대입
우선 순위가 가장 낮은 연산자
왼쪽 변수(left value)에 오른쪽 변수(값 right value)를 대입
public class Operation{
public static void main(String[] args){
int age = 24; // 나이를 의미하는 age 변수에 값 24를 대입함
int engScore = 80;
int mathScore = 90;
int totalScore;
totalScore = mathScore + engScore; // mathScore값과 engScore 값을 더하여 totalScore에 대입함
}
}
연산자
| 산술 연산자 | 기능 | 연산 예시 |
| + | 두 항을 더합니다. | 5 + 3 |
| - | 앞에 있는 항에서 뒤에 있는 항을 뺍니다. | 5 - 3 |
| * | 두 항을 곱합니다. | 5 * 3 |
| / | 앞에 있는 항에서 뒤에 있는 항을 나누어 '몫'을 구합니다. | 5 / 3 |
| % | 앞에 있는 항에서 뒤에 있는 항을 나누어 '나머지'를 구합니다. | 5 % 3 |
- %는 나머지를 구하는 연산자
=> 숫자 n 의 나머지는 0 ~ n-1 범위의 수
=> 특정 범위 안의 수를 구할 때 종종 사용
| 증감 연산자 | 기능 | 연산 예시 |
| ++ | 항의 값에 1을 더합니다. | val = ++num; // 먼저 num 값이 1 증가 한 후 val 변수에 대입 val = num++; // val 변수에 기존 num 값을 먼저 대입한 후 num 값의 증가 |
| -- | 항의 값에 1을 뺍니다. | val = --num; // 먼저 num 값이 1 감소한 후 val 변수에 대입 val = num--; // val 변수에 num 값을 먼저 대입한 후 num 값 1 감소 |
| 관계 연산자 | 기능 | 연산 예시 |
| > | 왼쪽 항이 크면 참, 아니면 거짓을 반환 | num > 3; |
| < | 왼쪽 항이 작으면 참, 아니면 거짓을 반환 | num < 3; |
| >= | 왼쪽 항이 오른쪽 항보다 크거나 같으면 참 아니면 거짓을 반환 |
num >= 3; |
| <= | 왼쪽 항이 오른쪽 항보다 작거나 같으면 참 아니면 거짓을 반환 |
num <= 3; |
| == | 두 개 항의 값이 같으면 참, 아니면 거짓을 반환 | num == 3; |
| != | 두개 항의 다르면 참, 아니면 거짓을 반환 | num != 3; |
| 논리 연산자 | 기능 | 연산 예시 |
| && (논리 곱) |
두 항이 모두 참인 경우에만 결과가 참 하나라도 다를 경우 거짓 |
booleanVal = (5 > 3) && (5 > 2); // true |
| || (논리 합) |
두 항 중 하나의 항만 참이면 결과 값은 참 두 항 모두 거짓이면 결과 값은 거짓 |
booleanVal = (5 > 3) || (5 < 2); // true |
| ! (부정) |
단항 연산자로 참인 경우 거짓으로 바꾸고 거짓인 경우 참으로 바꿈 |
booleanVal = !(5 > 3); // false |
| 복합 대입 연산자 | 기능 | 연산 예시 |
| += | 두 항의 값을 더해서 왼쪽 항에 대입함 |
num1 += 2; // num1 = num1 + 2; 와 동일 |
| -= | 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입함 |
num2 -= 2; // num2 = num2 -2; 와 동일 |
| *= | 두 항을 곱해서 왼쪽 항에 대입함 | num3 *= 2; // num3 = num3 * 2; 와 동일 |
| /= | 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입함 |
num4 /= 2; // num4 = num4 / 2; 와 동일 |
| %= | 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입함 |
num5 %= 2; // num5 = num5 % 2; 와 동일 |
| <<= | 비트를 왼쪽으로 이동하고 그 값을 왼쪽 항에 대입함 | num6 <<= 2; // num6 = num6 << 2; 와 동일 |
| >>= | 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입함 (왼쪽에 채워지는 비트 값은 부호 비트와 동일) |
num7 >>= 2; // num7 = num7 >> 2; 와 동일 |
| >>>= | 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입함 ( 왼쪽에 채워지는 비트 값은 0입니다) |
num8 >>> 2; num8 = num8 >>> 2; 와 같음 |
| &= | 두 항의 & 비트 연산 후 그 값을 왼쪽 항에 대입함 | num9 &= num8; // num9 = num9 & num8; 와 동일 |
| |= | 두 항의 | 비트 연산 후 그 값을 왼쪽 항에 대입함 | nun10 |= num9; // num10 = num10 | num9; 와 동일 |
| ^= | 두 항의 ^ 비트 연산 후 그 값을 왼쪽 항에 대입함 | num11 ^= num10; // num11 = num11^num10;와 동일 |
삼항연산자
조건 식의 결과가 true인 경우와 false인 경우에 따라 다른 식이나 겨로가가 수행됨
제어문 중 조건문을 간단히 표현할 때 사용할 수 있음
public class OperationEx2{
public static void main(String [] args){
int fatherAge = 45;
int motherAge = 47;
char ch;
ch = (fatherAge > motherAge) ? 'T' : 'F';// 엄마 나이가 아빠 나이보다 작으면 T 아니면 F를 ch에 대입
System.out.println(ch); // 엄마 나이 47 아빠 나이 45로 F가 출력
}
}
연산자 우선 순위
| 우선순위 | 형 | 연산자 | 연산방향 |
| 1 | 일차식 | (), [] | ----------------------> |
| 2 | 단항 | !, ++, --, +- | <---------------------- |
| 3 | 산술 | %, / | ----------------------> |
| 4 | 산술 | +, - | ----------------------> |
| 5 | 비트 이동 | <<, >> | ----------------------> |
| 6 | 관계 | <,>, <=, >= | ----------------------> |
| 7 | 관계 | ==, != | ----------------------> |
| 8 | 비트 곱 | & | ----------------------> |
| 9 | 비트 차 | ^ | ----------------------> |
| 10 | 비트 합 | | | ----------------------> |
| 11 | 논리 곱 | && | ----------------------> |
| 12 | 논리 합 | || | ----------------------> |
| 13 | 조건 | ? : | ----------------------> |
| 15 | 대입 | =, +=, -=, *=, %=, /= | <--------------------- |
'Java' 카테고리의 다른 글
| Java 정리 4-2 (0) | 2024.07.03 |
|---|---|
| Java 정리 4-1 (0) | 2024.07.01 |
| Java 정리 2-3 (0) | 2024.06.26 |
| Java 정리 2-2 (0) | 2024.06.25 |
| Java 정리 2-1 (0) | 2024.06.25 |