반응형

조건 연산자   ?   :

조건식의 결과에 따라 연산결과를 달리한다.

조건식 ? 식1 : 식2

result = (x > y) ? x : y;

result = (5 > 3) ? 5 : 3;

result = (true) ? 5 : 3;

result = 5;

 

if 문을 간단하게 하기 위해서 쓰여짐.

result = (x > y) ? x : y;

if (x > y)

result = x; // x > y가 true일 때

else

result = y; // x > y가 false일 때

 

대입 연산자

오른쪽 피연산자를 왼쪽 피연산자에 저장 후 저장된 값을 반환

"모든 연산자는 결과값을 반환한다."

System.out.println(x = 3); // 변수 x에 3이 저장되고

System.out.println(3); // 연산결과인 3이 출력된다.

(오른쪽 -> 왼쪽으로 진행된다)

 

lvalue - 대입 연산자의 왼쪽 피연산자 (저장공간 - 변수, 배열)

rvalue - 대입 연산자의 오른쪽 피연산자

x(left value) = 3(right value)

오른쪽 값을 왼쪽에 저장한다는 개념으로 이해해야 한다.

 

lvalue 에러의 예시

int i = 0;

3 = i + 3; // 에러. Ivalue가 값을 저장할 수 있는 공간이 아니다.

i + 3 = i; // 에러. Ivalue의 연산결과가 리터럴(i+3 -> 0+3 -> 3)

 

final int MAX = 5; // 변수 앞에 키워드 final을 붙이면 상수(값을 한 번 저장하면 변경X)가 된다.

MAX = 10; // 에러. 상수(MAX)에 새로운 값을 저장할 수 없다.

 

복합 대입 연산자 (첫 줄 하나만 외우고 있으면 나머지는 배열이 같아서 쉽게 외울 수 있다)

반응형