조건 연산자? :
조건 연산자는 조건식, 식 1, 식 2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자이며,
삼항 연산자는 조건 연산자 하나뿐이다.
(조건식)? (참이면 반환) : (거짓이면 반환)
public class OperatorEx32 {
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; // 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
대입 연산자 = op=
대입 연산자는 변수와 같은 저장공간에 값 또는 수식의 연산 결과를 저장하는 데 사용된다.
특이한 점은 연산 진행방향이 오른쪽에서 왼쪽이다.
대입 연산자의 왼쪽 피연산자를 lvalue(left value)이라 하고, 오른쪽 피연산자를'rvalue(right value)라고 한다.
복합 대입 연산자
대입 연산자는 다른 연산자(op)와 결합하여 op=과 같은 방식으로 사용될 수 있다.
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 = i | 3; |