📖 Java 연산자
📌 연산자
- 프로그램에서 연산을 수행하기 위하여 사용되는 특수 기호들
📌 연산자 종류
- 대입연산자 : 변수에 숫자나 문자열 등의 자료를 입력하거나 연산 결과를 다른 변수에 할당한다.
- 사칙연산자 : 더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/)과 나머지(%)
- 단항연산자 : 변수에 대한 연산결과를 다시 자기 자신에게 적용하는 경우 사용한다.
- 증감연산자 : 특정 변수에 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용한다.
- 비교연산자 : 두개의 변수값 간의 관계를 비교하여 참(true), 거짓(flase)의 결과를 반환한다.
- 논리연산자 : 좌변과 우변을 논리연산하고, 참(true), 거짓(flase)의 결과를 반환한다.
- 삼항연산자 : 3개의 피연산자를 필요로 하는 연산자
📌 사칙연산자
- 일반적인 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈의 몫(/), 나머지(%)을 수행한다.
- 사칙연산의 결과는 대입연산자를 통하여 다른 변수에 대입될 수 있다.
- 정수(byte, short, int, long)와 실수(float, double)의 연산시에는 정수가 실수 형태로 자동 변환되어 처리되기 때문에, 결과는 실수가 된다.
🤔 나눗셈에 있어서의 주의 사항
-
10 나누기 3을 계산할 때 수학에서는 몫이 3, 나머지가 1이라고 계산되지만 Java에서는 나눗셈에 대해 두개의 연산자로 구분된다.
10/3 : 몫만을 취하여 결과값은 "3"
10%3 : 나머지만을 취하여 결과값은 "1"
-
프로그램에서의 연산은 이진수의 변환되어 이루어진다. 실수는 이진수로의 변환이 되지 않기 때문에 실수의 나눗셈은 오차가 발생할 수 있다.
-
모든 수는 0으로 나눌수 없다.
📌 단항연산자
- 어떤 변수(x)의 값에 대한 계산 결과를 다시 자기 자신에게 대입하고자 하는 경우의 약식 표현이다.
int x = 100;
x= x + 5
x += 5
- 단항연산자는 모든 사칙 연산자에 표현이 가능하다.
- +=, -=, *=, /=, %=
📌 증감연산자
- 단항연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우, 덧셈과 뺄셈에 대해서는 다시한번 축약할 수 있다.
- 덧셈의 경우
x = x+1;
x += 1;
x++;
++X;
x = x-1;
x -= 1;
x
🤔 "x++"와 "++x"의 차이
- 증감 연산자의 표시 위치에 따라 결과가 서로 다르게 적용된다.
- x++ : 증감 연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고 나중에 x에 대한 1증가를 처리한다.
- ++x : 증감연산자가 앞에 표시되는 경우 먼저 현재 x의 값을 1증가 시킨 후, 그 결과를 수식에 적용한다.
📌 비교연산자
- 같다(==), 다르다(!=), 초과(>),이상(>=), 미만(<), 이하(<=)
- 주어진 식이 참인지 거짓인지만 판별 가능하므로, 연산결과는 boolean값으로 생성된다.
📌 논리연산자
- 두개 이상의 비교연산자의 결과나 boolean 값에 대해 추가로 "AND", "OR" 연산을 수행하여 결과를 얻는다.
✍️AND의 의미를 갖는 &&
- "&&" 연산자는 두개의 boolean값을 비교하여 모두 true인 경우만 결과값이 true가 된다.

✍️OR의 의미를 갖는 ||
- "||"연산자는 두개의 boolean값을 비교하여 둘 중 하나라도 ture인 경우 결과가 true이다.

📌 삼항연산자

- true , false를 판단할 수 있는 변수 도는 조건식을 작성한 후 ? 다음에는 연산결과인 true 또는 false에 실행되는 표현식을 각각 작성하면 된다.
- 조건식의 연산결과가 true일 경우 결과는 피연산자2 이고, 조건식의 연산 결과가 false이면 결과는 피연산자3이 된다.
- 이때 반환값에는 값뿐만 아니라 수식, 함수호출 등 여러가지 형태의 명령문이 올 수 있다.
✍️ 삼항연산자 사용시 주의사항
삼항연산자를 사용 시 코드를 좀 더 간결하게 작성할 수 있는 장점이 있다. 하지만 코드가 짧다고 해서 if문에 비해서 속도가 빠르지 않다. 또한 축약된 형식이기 때문에 잘못 사용할 경우에는 소스코드의 가독성을 해치기도 한다. 특히 한 줄에 조건식과 결과값들이 모두 모여있으므로 줄 단위 디버깅을 할 때 상당히 불편하다. 따라서 가독성을 해치지 않으면서 코드가 간결해지는 경우에만 삼항 연산자를 써야한다. 대부분의 경우에는 if 조건문을 사용하여 여러줄로 작성하는 것이 좋다.
출처 : https://junghn.tistory.com/entry/JAVA-%EC%82%BC%ED%95%AD%EC%97%B0%EC%82%B0%EC%9E%90%EC%9D%B4%EB%9E%80-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%98%88%EC%A0%9C