!
!
는 조건문과 반복문에서 주로 사용ex
식 '!!b' 의 평가과정조건 연산자
: 조건식, 식1, 식2 모두 세 개의 피연산자를 필요로 하는 삼항 연산자이며, 삼항 연산자는 조건 연산자 하나뿐임🍕 예
result = (x > y) ? x : y;
(괄호 생략가능)
위의 문장에서 식 'x>y'의 결과가 True이면, 변수 result에는 x 의 값이 저장, false이면 y의 값이 저장.
result = (x > y) ? x : y;
→ result = (5 > 3) ? 5 : 3;
→ result = (true) ? 5 : 3;
→ result = 5;
조건 연산자는 조건문인 if문
으로 바꿔 쓸 수 있음(코드가 간단)
▶조건 연산자 사용
result = (x > y) ? x : y;
▶if문 사용
if(x > y)
result = x; //x>y가 true일 때
else
result = y; //x>y가 false일 때
조건 연산자의 식1과 식2의 타입이 다른 경우, 이항 연산자처럼 산술 변환이 발생
▶x = x+(mod < 0.5 ? 0 : 0.5) //0과 0.5의 타입이 다름
▶x = x+(mod < 0.5 ? 0.0 : 0.5) //0이 0.0으로 자동 형변환
▶자동 형변환이 일어나서 double타입으로 통일되고 연산결과도 double타입이 됨
조건 연산자를 이용해 변수의 절대값을 구한 후, 부호를 붙여 출력하는 예제
대입 연산자
: 변수와 같은 저장공간에 값 또는 수식의 연산결과를 저장하는데 사용🍟 lvalue와 rvalue
lvalue(left value)
: 대입 연산자의 왼쪽 피연산자rvalue(right value)
: 대입 연산자의 오른쪽 피연산자int i = 0;
3 = i + 3; //에러.lvalue가 값을 저장하는 공간 아님
i + 3 = i; //에러.lvalue의 연산결과가 리터럴(i+3→0+3→3)
final int MAX = 3; //변수 앞에 키워드 final을 붙이면 상수가 됨
MAX = 10; //에러. 상수(MAX)에 새로운 값을 저장할 수 없음. 한번 저장된 값 못바꿈
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; |
i *= 10+j; | i = i*(10+j); |