조건 연산자 ?:
•
조건식, 식1, 식2 세 개의 피연산자를 필요로 하는 삼항 연산자
•
조건식의 평가 결과가 true → 식1 반환 / false → 식2 반환
조건식 ? 식1 : 식2
result = (x > y) ? x : y;
Java
•
조건 연산자는 조건문 if로 변환도 가능 → 조건 연산자를 사용이 더 간단한 코드!
if (x > y)
result = x;
else
result = y;
Java
•
조건 연산자는 중첩해서 사용 가능 (너무 중첩하면 가독성이 떨어지므로 적당히 사용하자)
// x값이 양수면 1, 0이면 0, 음수면 -1를 반환하는 식
result = x > 0 ? 1 : (x == 0 ? 0 : -1);
Java
•
이항 연산자처럼 피연산자의 타입이 다를 경우 산술 변환이 발생
◦
x = x + (mod < 0.5 ? 0 : 0.5) → x = x + (mod < 0.5 ? 0.0 : 0.5)
OperatorEx32.java
대입 연산자 = op=
•
변수와 같은 저장 공간에 값 또는 수식의 연산 결과를 저장하는데 사용
System.out.println(x = 2); // 변수 x에 2가 저장되고 연산 결과인 2가 출력됨.
Java
lvalue & rvalue
•
lavalue → 왼쪽 피연산자 : 반드시 변수처럼 값을 변경할 수 있는 것이어야 함.
•
rvalue → 오른쪽 피연산자 : 변수, 식, 상수 등 모두 가능
•
final : 변수 앞에 붙여서 사용하며, 상수를 나타냄.
복합 대입 연산자
•
대입 연산자는 다른 연산자(op)와 결합하여 사용 가능
◦
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 → i |= 3
◦
i = i * (10 + j) → i *= 10 + j