연산자 우선순위

Cloudman·2022년 11월 12일

프로그래머스 자바

목록 보기
5/11

❓연산자 우선순위

연산자가 나왔을때 어떠한 연산자를 우선시 해서 계산하는지 에대한 것이다.

표의 위에서 아래로 내려갈수록 연산자의 우선순위가 낮아진다.

증감 연산자인 ++, -- 는 전위 연산자냐(앞에있는) 후위 연산자냐(뒤에있는)에 따라 다르다는것 조심하자

논리 연산자 중에 &&(논리곱), ||(논리합) 이 둘이 동시에 나왔을 때는 &&(논리곱) 연산자가 우선순위가 더 높다.

&&AND 연산자 라고도 한다.
||OR 연산자 라고도 한다.



예제를 만들어서 직접 확인해보자.

int a = 5;
int b = 10;
int c = 15;

System.out.println(a - b * c);  // 결과 : -145
System.out.println((a - b) * c);    // 결과 : -75
System.out.println(a > 5 && b > 5); // 결과 false

2개의 비교 연산자 > , 하나의 논리 연산자 &&

a > 5 의 결과는 false 이고, b > 5 의 결과는 true 이다.
비교연산자가 더 우선순위가 높기 때문에 boolean 값을 놓고 && 로 비교하는 상황이다.

이렇게 되면 && 연산자는 둘 다 같은 결과여야 true 를 반환하기 때문에 결과는 false 가 된다.

System.out.println(++a - 5);

(5 + 1) - 5 이기에 결과는 6 이 된다.

System.out.println(++a - 5);    // 결과 : 1
System.out.println(a++ - 5);    // 결과 : 0

a++ 단항 연산자 이지만 후위 연산자는 다른 연산이 먼저 수행이 되기 때문에 결과는 0 이 된다.

출력이 되고 난 다음에 5 + 1 이 되기 때문에 다시 출력하면...

System.out.println(a);
결과 : 6

이렇게 결과를 알 수 있다.

profile
코린이

0개의 댓글