연산자와 연산식
프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산이라고 합니다.
연산에 사용되는 표시나 기호를 연산자라고 하고, 연산되는 데이터는 피연산자라고 합니다.
연산자와 피연산자를 이용하여 연산의 과정을 기술한 것을 연산식이라고 부릅니다.
x - y
x + y
x * y + z
x == y
여기서 +,-,*,== 은 연산자이고, x,y,z는 피연산자입니다.
연산자는 필요로 하는 피연산자의 수에 따라 단항, 이항, 삼항 연산자로 구분됩니다.
연산자의 종류
산술 ( 이항연산자이며, 사칙연산 및 나머지계산을 할때 사용합니다. )
+, -, *, /, %
부호 ( 단항연산자이며, 숫자의 음수와 양수를 나타냅니다. )
+, -
문자열 ( 이항연산자이며, 두 문자열을 합칠때 사용합니다. )
대입 ( 이항연산자이며, 숫자 및 문자 같은 우변의 값을 좌변의 변수에 대입할때 사용합니다. )
=, +=, -=, *=, /=, %=, &=, ^= 등등
증감 ( 단항연산자이며, 값을 1만큼 증가시키거나 감소시킬때 사용합니다.)
++, --
비교 ( 이항연산자이며, boolean 값을 비교할때 사용합니다. )
==, !=, >, <, <=, >=, instanceof
논리 ( 단항 또는 이항연산자이며, 논리적 NOT,AND,OR 연산시 사용합니다. )
!, &, &&, |, ||
조건 ( 삼항연산자이며, 조건식에 따라 A 또는 B를 선택할때 사용합니다. )
(조건식) ? A : B
비트 ( 단항 또는 이항연산자이며, 비트 NO, AND, OR, XOR 연산시 사용합니다.
~, &, |, ^
쉬프트 ( 이항연산자이며, 비트를 좌측/우측으로 밀때 사용합니다. )
, <<, >>>
연산시 주의할점
오버플로우 탐지
산술 연산을 할 때 주의할 점은 연산 후의 산출값이 산출 타입으로 충분히 표현가능한지 확인해야합니다.
산출 타입으로 표현할수 없는 값이 산출되었을 경우, 오버플로우가 발생하고 쓰레기값을 얻을수 있기 때문입니다.
그러므로 타입을 정할때 계산후의 값보다 작은타입이 아닌지 확인해야합니다.
NaN과 Infinity 연산
/ 또는 % 연산자는 0으로 나눌수가 없어서 0으로 나누면 ArithmeticException 예외가 발생합니다.
자바는 프로그램 실행 도중 예외가 발생하면 실행이 즉시 멈추고 프로그램은 종료됩니다.
그러므로 변수를 가지고 /와 & 연산자를 사용할때에는 예외처리(try, catch)를 해줘야합니다.
또 실수타입으로 /와 %를 사용하게되면
5 / 0.0 -> Infinity
5 % 0.0 -> NaN
NaN과 Infinity 결과가 나오는데 이값이 나오면 연산을 수행하면 안됩니다.
NaN과 Infinity값들과 연산시에도 NaN과 Infinity이 나와서 데이터가 엉망이 될수 있습니다.