연산자에 대한 마지막 글입니다.
마지막으로 연산자의 우선순위에 대해서 알아보고 넘어가겠습니다.
지난 포스트
Photo by Roman Mager on Unsplash
연산자 우선순위 표
위에서 연산자에 대해서 처음 소개할 때에도 표를 보여드렸는데, 그때에는 단항, 이항, 삼항연산자로 나누어서 만들어진 표였었습니다.
이번에는 연산자의 우선순위를 기준으로 표를 만들어보겠습니다.
우선순위 | 종류 | 연산 방향 | 연산자 |
높음 ↕ 낮음 |
증감연산자 | ← | ++, -- |
산술연산자 | → | +, -, *, /, % | |
비교연산자 | → | ==, !=, >, <, >=, <= | |
논리연산자 | → | !, &&, || | |
삼항연산자 | → |
? : | |
대입연산자 | ← | =, +=, -=, *=, /=, %=, &=, ^=, |= ... |
연산자 우선순위 실습
위의 소스 코드는 PC에서 드래그 후,
ctrl+x로 잘라내서 다른 곳으로 붙여넣기가 가능합니다.
ctrl+c(복사)는 불가능합니다.
위와 같은 코드가 있습니다.
코드를 넣고 실행을 돌리면 z의 결과값은 몇이 나올까요?
x = 2, y = 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이 됩니다.
다음 포스트
이 글이 도움이 됐다면 하단의 ♡ 공감 버튼을 꾹 눌러서
빨간 하트♥로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS에 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.
'그 외 프로그래밍 언어 > Java' 카테고리의 다른 글
자바, 조건문 if-else문 (0) | 2021.11.23 |
---|---|
자바, 조건문이란? (feat. 단순 if문) (0) | 2021.11.23 |
자바 실습, 삼항연산자를 이용한 실습 3가지 (0) | 2021.11.22 |
자바, 삼항연산자 (0) | 2021.11.22 |
자바, 논리연산자 (0) | 2021.11.22 |
댓글