Java/study

연산자 우선순위

Clearing 2022. 6. 7. 18:27
728x90

컴퓨터는 여러 가지 동작을 한 번에 진행할 수 없기 때문에

연산자 사용 시 우선순위가 존재하게 되는데

 

연산자 우선순위의 경우 다음과 같다.

최우선 연산자 (., [], () )

단항 연산자 ( ++,--,!,~,+/-   : 부정, bit변환> 부호> 증감)

산술 연산자 ( *,/,%,+,-,shift)\

쉬프트 연산자 ( >>,<<,>>> ) 

관계 연산자 ( >, <,>=,<=,==,!= )

논리 연산자 (&& , || ,!)

삼항 연산자 (조건식)? :

대입 연산자 =,*=,/=,%=,+=,-=

 

int a = 10, b = 20;

int num = a + b;라고 할 경우 

+(산술 연산자) 이후 =(대입 연산자)를 진행해 30이라는 값이 출력된다.

 

double score = (10+20+31)/3;이라는 값을 출력하면 20.3333333... 이아닌 20.0이

나오게 되는데 이는 정수형과 정수형을 계산하는 과정에서

컴퓨터가 제대로 처리를 하지 못해 발생되는 경우로

double score = (10+20+31)*1.0/3; or double score = (10+20+31)*/3.0; 와 같이

실수형을 포함시켜주면 올바른 값을 출력할 수 있다.

 

+=, -=, *=, /= 같은 것들을 복합 대입 연산자라고 하며

total = total + a;라고 하면 total += a; 와 같은 값으로 표현할 수 있다.

 

 

728x90

'Java > study' 카테고리의 다른 글

제어문(조건문)  (0) 2022.06.08
스캐너와 객체  (0) 2022.06.08
연산자(비교, 논리, 삼항)  (0) 2022.06.08
변수와 자료형 그리고 연산자  (0) 2022.06.07
JDK, 이클립스 설치와 시작  (0) 2022.06.07