반응형

연산자의 우선순위

 

"하나의 식(expression)에 연산자가 둘 이상 있을 때, 어떤 연산을 먼저 수행할지를 자동 결정하는 것"

만약, 자신이 원하는 우선순위가 있다면, 괄호()를 사용하면 된다. 즉, 수동으로 결정할 수도 있다.
그러니까 5+3을 먼저 연산하고 싶으면, (5+3) * 4 이렇게 하면 된다.

근데 매번 수동으로 결정해주기는 불편하다. 그래서 기본적으로 어떤 우선순위에 의해서 자동결정되는지 알고있어야 한다.

표를 외우면 좋긴한데, 외울 필요는 없다. 대부분 이미 알고 있을 것이다.
상식적으로 생각하면 된다.

첫번째 식을 보면, -는 피연산자가 1개인 1항 연산자(단항 연산자)이고, +는 피연산자가 2개인 2항연산자이다.
즉, 이 식을 통해서 보면, 계산 우선 순위가, 1항 > 2항 인 것을 알 수있다.

두번째 식을 보면, 당연히 곱셈이 먼저 계산되고,

세번째 식을 보면, 당연히 덧셈이나 뻴셈이 먼저 수행이 되어야 양쪽항을 비교할 수 있다.
즉, 계산 우선순위는 산술 연산자 > 비교 연산자 이다.

네번째 식을 보면, 우선순위는 비교연산자  > 논리 연산자

다섯번째 식을 보면,  비교연산자는 모든 연산자 중에 우선순위가 가장 낮다.

 

전부 상식적으로 만들어졌다. 만약, 판단이 어려울떄는, ()를 사용하면 된다.

 


 

연산자의 결합규칙

 

"우선 순위가 같은 연산자가 있을 때, 어떤 것을 먼저?"

+와 - 의 우선순위는 같다. 이럴 때 어떤것을 먼저 계산해야하는가? 에대한 규칙이 "결합규칙"이다. 

기본적인 계산 순서는 왼쪽에서 오른쪽 이다. 

대입 연산자와 단항 연산자(부호연산자)인 경우에만 오른쪽에서 왼쪽으로 계산이 진행된다.

 

"모든 연산자는 연산 결과를 반환한다."

 

연산자의 우선순위와 결합법칙은 "세 가지만 기억하자"

  1. 산술 > 비교 > 논리 > 대입. 대입은 제일 마지막에 수행된다.
  2. 단항(피연산자 1개) > 이항(피연산자 2개) > 삼항(피연산자 3개) 단항연산자의 우선순위가  이항 연산자보다 높다.
  3. 단항 연산자와 대입 연산자를 제외한 모든 연산의 진행 방향은 왼쪽에서 오른쪽이다.
반응형

'JAVA' 카테고리의 다른 글

형변환 연산자, 자동 형변환  (0) 2022.03.15
증감 연산자, 부호 연산자  (0) 2022.03.15
연산자와 피연산자  (0) 2022.03.14
타입간의 변환방법  (0) 2022.03.14
정수형의 오버플로  (0) 2022.03.14