본문 바로가기

JAVA

[JAVA] 연산자의 종류와 우선순위

반응형

연산자 우선순위 

연산자 우선순위 종류 연산자
1 최우선 연산자 [], ()
2 단항 연산자 (항이 하나인 연산자) !, -, +, ++, --
3 산술 연산자 +, -, *, /, %
4 쉬프트 연산자 <<  >> >>>
5 비교 연산자 <, >, <=, ==, !=
6 논리 연산자 &&, ||
7 삼항 연산자 (조건)? 참 : 거짓
8 대입 연산자 =, +=, -=, *=

예제

하기 코드를 출력하게되면 값은 a : 12, c : 10, d : 12가 나오게되는데 

여기서 가장 중요한 개념인 후위 증감연산자의 우선순위가 매우 낮다는것을 잊지 말아야 한다. 

1줄씩 코드를 풀이해보자면, 

1--> a : 10 

2 --> a++은 후위증감이기 때문에 c:10값을 먼저 대입해주고 그러고나서 a에 +1을 한값인 a : 11이 된다. 

3 --> ++a은 전위증감이기에 먼저 진행하게되어 a에 +1 해주어 a : 12, d : 12가 된다 

1
2
3
4
5
6
7
8
9
        int a=10;
        int c=a++;
        // 후위 증감연산자의 우선순위는 매우낮음! 
        int d=++a; // 전위 증감연산자의 우선순위는 매우높음! 
        // ++a; int d=a;
        System.out.println("a: "+a);
        System.out.println("c: "+c);
        System.out.println("d: "+d);
 
cs

메모장에 디버깅표를 그려가면서 계산하면 조금 더 정확하게 값을 구할 수 있다.  

반응형