항과 연산자
① 항 (Operand)
: 연산에 사용되는 값 (리터럴, 변수 등)
② 연산자 (Operator)
: 항을 이용하여 연산하는 기호
- 연산자 우선순위
· 가장 높은 순위 : () [] .
· 가장 낮은 순위 : =
대입 연산자
- 변수에 다른 변수나 값을 대입하는 연산자 (=)
- 형식 : L value = R value;
· 대입 연산자의 연산 방향 : R value → L value
부호 연산자
- 변수의 부호를 +로 유지하거나, -로 바꾸는 연산자
- 형식 : 대입할_변수 = - 기존_변수;
- 항이 하나인 단항 연산자
- 실제 값을 변경하려면 대입 연산자를 사용해야 함
산술 연산자
A + B | A와 B를 더하기 |
A - B | A에서 B를 빼기 |
A * B | A와 B를 곱하기 |
A / B | A에서 B를 나누기 // 아래 참고 |
A % B | A에서 B를 나눈 나머지 |
# A / B에 대한 유의 사항
1) A : 정수, B : 정수인 경우
→ A에서 B를 나눈 정수인 몫이 계산됨 (소숫점 버림)
- 실수인 값으로 계산하고 싶다면 둘 중 하나 이상을 강제 형 변환하기
→ 형식 : (double) A / B;
2) A와 B 중 하나 이상이 소숫점이 있는 실수인 경우
→ A에서 B를 나눈 실수인 값이 계산됨 (소숫점 포함)
복합 대입 연산자
L value += R value; | (왼쪽 항 + 오른쪽 항)을 왼쪽 항에 대입 |
L value -= R value; | (왼쪽 항 - 오른쪽 항)을 왼쪽 항에 대입 |
L value *= R value; | (왼쪽 항 * 오른쪽 항)을 왼쪽 항에 대입 |
L value /= R value; | (왼쪽 항 / 오른쪽 항)의 몫을 왼쪽 항에 대입 |
L value %= R value; | (왼쪽 항 / 오른쪽 항)의 나머지를 왼쪽 항에 대입 |
증감 연산자
A = ++B; | B가 1 증가한 후 A에 대입됨 |
A = B++; | 기존의 B를 A에 대입한 후, B가 1 증가함 |
A = --B; | B가 1 감소한 후 A에 대입됨 |
A = B--; | 기존의 B를 A에 대입한 후, B가 1 감소함 |
- 변수의 값을 1 더하는 증가 연산자(++) & 변수의 값을 1 빼는 감소 연산자(--)
- 항이 하나인 단항 연산자
- 연산자와 항 간의 위치에 따라 연산 시점이 달라짐
관계 연산자 (비교 연산자)
A > B | A가 B보다 크면 true |
A < B | A가 B보다 작으면 true |
A >= B | A가 B보다 크거나 같으면 true |
A <= B | A가 B보다 작거나 같으면 true |
A == B | A가 B와 같으면 true |
A != B | A가 B와 다르면 true |
- 어떤 사실을 관찰하고, 그 관찰 결과가 참인지 거짓인지 판별하는 연산자
- 연산의 결과가 true 또는 false으로 반환됨
- 조건문, 반복문과 함께 자주 사용됨
논리 연산자
A && B (논리 곱) |
A항과 B항이 모두 참이면 true |
A || B (논리 합) |
A항과 B항 중 하나라도 참이면 true |
! A (부정) |
참이면 false로 바꾸고, 거짓이면 true로 바꿈 |
- 연산의 결과가 true 또는 false으로 반환됨
- 관계 연산자와 함께 자주 사용됨
# Short circuit evaluation
- 앞 항에서 이미 결과가 결정된 경우, 뒷 항의 연산을 실행하지 않음
1) 논리 곱 (&&)
: 두 항의 결과가 모두 true일 때만 결과가 true임
→ 앞 항의 결과가 false이면 뒷 항의 결과를 평가하지 않음
2) 논리 합 (||)
: 두 항의 결과가 모두 false일 때만 결과가 false임
→ 앞 항의 결과가 true이면 뒷 항의 결과를 평가하지 않음
조건 연산자 (삼항 연산자)
- 조건식이 true인지 false인지에 따라 다른 결과가 수행됨
- 형식 : (조건식) ? 참_결과 : 거짓_결과;
- if문을 간소화한 형태
'Java > Base' 카테고리의 다른 글
[Java] 참조 자료형 (Scanner, Random) (0) | 2023.02.03 |
---|---|
[Java] 제어문 : 조건문과 반복문 (if, switch, for, while) (0) | 2023.02.02 |
[Java] 형 변환 (0) | 2023.02.02 |
[Java] 상수와 리터럴 (0) | 2023.02.02 |
[Java] 변수와 기본 자료형 (0) | 2023.02.02 |