본문 바로가기
그 외 프로그래밍 언어/Java

자바, 연산자 우선순위

by Dreaming Coder 2021. 11. 23. 20:32

 


 

연산자에 대한 마지막 글입니다.

마지막으로 연산자의 우선순위에 대해서 알아보고 넘어가겠습니다.

 

 

 

지난 포스트

 

자바 실습, 삼항연산자를 이용한 실습 3가지

지난 포스트에서 공부한 삼항연산자를 이용한 실습입니다. 지난 포스트 자바, 삼항연산자 연산자 중에서 마지막으로 배울 것은 삼항연산자입니다. 삼항연산자는 말 그대로 항(피연산자)이 3개

gogogameboy.tistory.com

 

 

 

Photo by Roman Mager on Unsplash

 

 

 

연산자 우선순위 표

 

 

자바, 연산자란? (feat. 연산자의 종류)

이번에는 연산자란 무엇인지, 그리고 연산자의 종류에는 어떤 것들이 있는지 살펴보도록 하겠습니다. 지난 포스트 자바, 데이터 타입 변환 코드를 짜다가 일시적으로 자료형(데이터 타입)을 변

gogogameboy.tistory.com

위에서 연산자에 대해서 처음 소개할 때에도 표를 보여드렸는데, 그때에는 단항, 이항, 삼항연산자로 나누어서 만들어진 표였었습니다.

이번에는 연산자의 우선순위를 기준으로 표를 만들어보겠습니다.

 

 

 

우선순위 종류 연산 방향 연산자
높음



낮음
증감연산자 ++, --
산술연산자 +, -, *, /, %
비교연산자 ==, !=, >, <, >=, <=
논리연산자 !, &&, ||
삼항연산자
? :
대입연산자 =, +=, -=, *=, /=, %=,
&=, ^=, |= ...

 

 

 

 

연산자 우선순위 실습

 

위의 소스 코드는 PC에서 드래그 후,
ctrl+x로 잘라내서 다른 곳으로 붙여넣기가 가능합니다.
ctrl+c(복사)는 불가능합니다.

 

 

 

위와 같은 코드가 있습니다.

코드를 넣고 실행을 돌리면 z의 결과값은 몇이 나올까요?

 

 

 

x = 2y = 10

 

x++ * 2 + --y - 5 + x * (y % 2);

보통은 여기 괄호로 묶여있는 식을 먼저 계산한다고 생각하기 쉽습니다.

그러면 10을 2로 나눈 나머지 값은 0이 되겠죠..

하지만 증감연산자(++, --)가 먼저였습니다.

 

x++ * 2 + --y - 5 + x * (y % 2);

먼저 x++ 이라고 쓰여있는 자리에는 2가 들어갑니다.

++가 x의 앞에 붙어있었다면 3이었겠지만, x의 뒤에 붙어있었으니 일단 2가 들어가고 그다음으로 나오는 x에 3이 들어가게 됩니다.

 

2 * 2 + --y - 5 + x * (y % 2);

그다음에 --y입니다.

y는 10이고, y의 앞에 --가 붙어있었으니 1을 빼서 9를 넣습니다.

 

2 * 2 + 9 - 5 + x * (y % 2);

그다음, 앞에서 ++ 때문에 1이 더해진 x에 3이 들어갑니다.

그리고 y도 --로 9가 됐었으니 9가 들어갑니다.

 

2 * 2 + 9 - 5 + 3 * (9 % 2);

그러면 우리가 계산해야 할 식은 결국 이런 모양이 됩니다.

 

(2 * 2) + 9 - 5 + (3 * (9 % 2));

더 보기 편하게 괄호로 묶으면 이런 모양이 되고,

 

4 + 9 - 5 + 3;

괄호 안에 있던 것들을 먼저 계산하니 이렇게 되었습니다.

 

 

 

결국 답은 11이 됩니다.

 

 

 

 

 

 

다음 포스트

 

자바, 조건문이란? (feat. 단순 if문)

조건문을 배우기 시작하면 지금까지 배웠던 것들에 비해서 난이도가 조금 올라갑니다. 이번에는 조건문 중에서도 if문을 배워보겠습니다. 지난 포스트 자바, 연산자 우선순위 연산자에 대한 마

gogogameboy.tistory.com

 

 

 


이 글이 도움이 됐다면 하단의 공감 버튼을 꾹 눌러서
빨간 하트로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.

 


 


댓글