삼항 연산자(? :)는 조건에 따라 할당한 값을 선택한다.
변수 A = ( 변수B /조건식/) ? 변수1 : 변수2
변수 A의 값은 변수 B가 조건식에 결과값이 true / false에 따라 달라진다.
true라면 변수1의 값을 false라면 변수2의 값을 저장한다.
package study;
public class study {
public static void main(String [] args) {
int a = 10, b =20;
int c = (a >= 10) ? a : b;
int d = (b < 19) ? a : b;
System.out.println("c =" + c);
System.out.println("d =" + d);
}
}
위 예시를 보면 변수 c의 값은 조건식이 true이기 때문에 a의 값을 저장하며, 변수d의 경우 flase 이므로 b의 값을 저장한다.
수학적인 연산으로는 a = 3이 a와 3이 같다라는 의미지만 논리 연산자에서 나온듯이 프로그래밍 연산으로는 a == 3이 같다라는 뜻이다.
따라서
대입 연산자(=)는 우변의 값을 좌변의 피연산자에게 할당하는 것 이다.
int a = 1; // 1을 a에 할당
a += 1; // a = a + 1;
a -= 1; // a = a - 1;
a *= 10; // a = a * 10;
a /= 10; // a = a / 10;
a %= 2; // a = a % 2;
위에 예시처럼 대입연사자 앞에 산술연산자가 붙게되면 복합 대입 연산자가 된다.