증감연산자는 피연산자에 저장된 값을 1 증가 또는 감소시킨다. 증감연산자의 피연산자로 정수와 실수가 모두 가능하지만, 상수는 값을 변경할 수 없으므로 가능하지 않다
대입연산자와 증감연산자만 피연산자의 값을 변경한다
증가 연산자(++) 피연산자의 값을 1 증가시킨다
감소 연산자(--) 피연산자의 값을 1 감소시킨다
일반적으로 단항 연산자는 피연산자의 왼쪽에 위치하지만, 증가 연산자 '++'와 감소 연산자 '--'는 양쪽 모두 가능하다.
피연산자의 왼쪽에 위치하면 '전위형(prefix)', 오른쪽에 위치하면 '후위형(postfix)'라고 한다
타입 | 설명 | 사용예 |
---|---|---|
전위형 | 값이 참조되기 전에 증가시킨다 | j = ++i; |
후위형 | 값이 참조된 후에 증가시킨다 | j = i++; |
public class OperatorEx1 {
public static void main(String args[]){
int i=5;
i++;
System.out.println(i);
i=5;
++i;
System.out.println(i);
}
}
public class OperatorEx2 {
public static void main(String[] args){
int i=5, j=0;
j=i++;
System.out.println("j=i++; 실행후, i="+i+" j="+j);
i=5;
j=0;
j=++i;
System.out.println("j=++i; 실행 후, i="+i+", j="+j);
}
}
전위형은 변수의 값을 먼저 증가시킨 후에 변수의 값을 읽어오는 반면, 후위형은 변수의 값을 먼저 읽어온 후에 증가시킨다.
public class OperatorEx3 {
public static void main(String[] args){
int i=5, j=5;
System.out.println(i++);
System.out.println(++j);
System.out.println("i = "+i+", j = "+j);
}
}
부호연산자는 피연산자의 부호를 반대로 변경한 결과를 반환한다
부호연산자는 boolean형과 char형을 제외한 기본형에만 사용할 수 있다
public class OperatorEx4 {
public static void main(String[] args){
int i=-10;
i=+i;
System.out.println(i);
i=-10;
i=-i;
System.out.println(i);
}
}