안녕하세요, 여행벌입니다.
오늘은 자바 연산자 중 단항 연산자들에 대해서 다뤄보겠습니다.
단항 연산자
단항 연산자는 피연산자가 하나인 연산자로 이항 연산자에 비해 그 수가 적습니다.
부호 연산자 : +, -
+, - 는 이항 연산자로 사용되면 덧셈과 뺄셈에 사용되지만, 단항 연산자로 수학에서와 동일한 의미를 갖습니다. 이때, 자바는 기본적으로 정수형 연산을 int 형으로 진행하고 그 결과도 int 형으로 반환하고, 실수형 연산을 double형으로 진행하고 그 결과도 double 형으로 반환하므로 부호 연산자를 사용할 때도 이 점을 주의해야 합니다.
예시 1)
package Hello;
public class HelloWorld {
public static void main(String args[]) {
int num = 5;
System.out.println(-num);
}
}
-5
위의 코드는 부호 연산자 - 를 이용해 num 의 부호를 바꿔서 출력했습니다.
package Hello;
public class HelloWorld {
public static void main(String args[]) {
short num = 5;
short num2 = -num;
}
}
위의 코드를 실행하면 num2 에는 -5가 저장될까요? 정답은 -num 은 int 형이지만 num2 는 short 형이므로 에러가 발생합니다.
증가 및 감소 연산자 : ++, --
연산자 |
연산자의 기능 |
결합 방향 |
++ (Prefix) |
피연산자에 저장된 값을 1 증가시킵니다. val = ++n; |
← |
-- (Prefix) |
피연산자에 저장된 값을 1 감소시킵니다. val = --n; |
← |
++ (Postfix) |
피연산자에 저장된 값을 1 증가시킵니다. val = n++; |
← |
-- (Postfix) |
피연산자에 저장된 값을 1 감소시킵니다. val = n--; |
← |
증가 및 감소 연산자 ++, -- 는 피연산자의 앞부분에 붙이냐, 뒷부분에 붙이냐에 따라 작동하는 방식이 조금 다릅니다. 기본적으로 값이 하나 증가 및 감소하는 것은 동일하나 반영되는 시점에 차이가 있습니다. Prefix 방식은 연산으로 인한 값의 증가 및 감소가 연산이 진행된 문장에서 발생하고, Postfix 방법은 그다음 문장으로 넘어가야 반영이 됩니다.
예시 2)
package Hello;
public class HelloWorld {
public static void main(String args[]) {
int num1 = 5, num2 = 5;
System.out.println("num1++ : " + num1++ + ' ' + "++num2 : " + ++num2);
System.out.println("num1-- : " + num1-- + ' ' + "--num2 : " + --num2);
}
}
num1++ : 5 ++num2 : 6
num1-- : 6 --num2 : 5
결국 모든 코드를 수행하고 나서 num1, num2 에 모두 5가 저장되지만 적용되는 시점에 따라 출력되는 값이 다른 것을 확인할 수 있습니다.
'Computer Language > JAVA' 카테고리의 다른 글
[JAVA] 자바 랜덤 난수 생성 함수 정리 - travelbeeee (2) | 2020.03.31 |
---|---|
[JAVA] #7 자바 비트 연산자 - travelbeeee (0) | 2020.03.19 |
[JAVA] #5 자바 이항 연산자 - travelbeeee (0) | 2020.03.16 |
[JAVA] #4 자바 형 변환 - travelbeeee (0) | 2020.03.13 |
[JAVA] #3 자바 리터럴(Literals), 리터럴 상수 - travelbeeee (0) | 2020.03.13 |