[자바JAVA] 전위연산(a++)과 후위연산(++a) 차이점

전위 증감 연산자(prefix) VS 후위 증감 연산자(postfix)

  • 전위 증감 연산자(++a,–a) : 연산 후 대입
  • 후위 증감 연산자(a++,a–) : 대입 후 연산

예시

아래 문제를 통해 차이점을 알아보자

1
2
3
4
5
6
int a, b;
a = b = 10;

boolean c = ++a > b++ || a++ >= ++b;
System.out.println(a+","+b);
System.out.println("변수 c의 값 :"+c);

1
2
11, 11
true

풀이

  • ++a > b++의 값은 11 > 10 이라서 true
  • a++ >= ++b의 값은 11 >= 12 라서 false
  • 그렇다면 출력할때 왜 12,12가 아닌 11,11이 나올까?
    • 컴파일러는 앞부분이 true인 경우 굳이 || 연산자 뒤를 연산 할 필요가 없다.
    • 따라서 12,12가 아닌 11,11이고 이것이 논리연산자의 특징이다.




참고

Comments