반응형
6.1 조건 연산자 ? :
- 조건식 ? 식1 : 식2
조건식이 참일 경우 → 식1 / 조건식이 거짓일 경우 → 식2 - 조건 연산자도 식1과 식2, 이 두 피연산자의 타입이 다른 경우, 이항 연산자처럼 산술 변환이 발생한다
6.1.1 [예제] 조건 연산자에서의 산술 변환
- x = x + (mod < 0.5 ? 0 : 0.5) 0과 0.5의 타입이 다름
→x = x + (mod < 0.5 ? 0.0 : 0.5) 0이 0.0으로 변환
6.1.2 [예제] 조건 연산자를 활용한 절댓값 구하기
public class _20_ConditionOperator {
public static void main(String[] args) {
int x, y, z;
int absX, absY, absZ;
char signX, signY, signZ;
x = 10;
y = -5;
z = 0;
absX = x >= 0 ? x : -x;
absY = y >= 0 ? y : -y;
absZ = z >= 0 ? z : -z;
signX = x > 0 ? '+' : (x==0 ? ' ' : '-');
signY = y > 0 ? '+' : (y==0 ? ' ' : '-');
signZ = z > 0 ? '+' : (z==0 ? ' ' : '-');
System.out.printf("x=%c%d%n", signX, absX);
System.out.printf("y=%c%d%n", signY, absY);
System.out.printf("z=%c%d%n", signZ, absZ);
}
}
// 결과
x=+10
y=-5
z= 0
6.2 대입 연산자 = op=
6.2.1 lvalue(left value)와 rvalue(right value)
- rvalue : 변수뿐만 아니라 식이나 상수 등이 모두 가능
- lvalue : 반드시 변수처럼 값을 변경할 수 있는 것이어야 함 → 리터럴이나 상수같이 값을 저장할 수 없는 것들은 불가능
- 변수 앞에 키워드 final을 붙이면 상수가 된다. ex) final int Max = 3;
- 상수에는 새로운 값을 저장할 수 없다. ex) Max = 10; // 에러!
6.2.2 복합 대입 연산자
- 대입 연산자는 다른 연산자(op)와 결합하여 ‘op=’와 같은 방식으로 사용될 수 있다. 예를 들면, ‘i = i + 3’은 ‘i += 3’과 같이 표현 가능
- 복합 대입 연산자의 종류
op= | = |
i += 3; | i = i + 3; |
i -= 3; | i = i - 3; |
i *= 3; | i = i * 3; |
i /= 3; | i = i / 3; |
i %= 3; | i = i % 3; |
i <<= 3; | i = i << 3; |
i >>= 3; | i = i >> 3; |
i &= 3; | i = i & 3; |
i ^= 3; | i = i ^ 3; |
i | = 3; |
i *= 10 + j; | i = i * (10 + j); |
반응형
'Java > Java의 정석' 카테고리의 다른 글
[Java의 정석/3-2] 반복문 - for,while,do-while (0) | 2023.03.15 |
---|---|
[Java의 정석/3-1] 조건문 - if, switch (0) | 2023.03.15 |
[Java의 정석/2-5] 논리 연산자 (1) | 2023.03.15 |
[Java의 정석/2-4] 비교 연산자 (0) | 2023.03.15 |
[Java의 정석/2-2,3] 단항 연산자와 산술 연산자 (0) | 2023.03.07 |