본문 바로가기

개발

JAVA 연산자 순위(우선순위 표)

아래와 같은 상황에서 조건문은 참일까?

if(true || false && false){
	// 여기를 통과할까?
}

 

 

나는 논리곱 연산과 논리합 연산이 +- 처럼 동순위를 가진다고 생각하고 순서대로 계산하여 false 가 나온다고 생각했다.

하지만 JAVA 에서는 논리곱( && )이 논리합( || )보다 우선순위가 높기 때문에 true 가 나온다.  

 

왠만하면 괄호로 코드의 의도를 명확하게 하자. 

나중에 또 볼 수 있으니 연산자 우선순위 표를 달아 둔다.

출처 - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html