2013-01-31 5 views
0

빠른 질문입니다. Java에서는 AND가 OR보다 우선합니까? 예를 들어,이 코드는 어떻게 해석됩니까?OR보다 우선 순위가 높습니까?

if(statement1 && statement2 || statement3) 

이것은 무엇입니까? 사전에

if(statement1 && (statement2 || statement3)) 

또는

if((statement1 && statement2) || statement3) 

감사합니다. Oracle tutorial for operators&&에 명시된 바와

+7

나는 정말로 이것이 스스로 테스트하거나 연구 할 수 있다고 생각합니다! –

+2

이것은 [2 초 Google] (https://www.google.co.uk/search?q=java+and+or+precedence)에서 응답합니다. –

+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html – kosa

답변

5

는보다 높은 우선 순위를 가지고 ||

참고 &보다 높은 &&하고 || 동일한 우선 운영자는 왼쪽에서 오른쪽으로 평가

(단이다 |보다 높은 우선 순위를 갖는다 할당 연산자). 예 : 1 + 2 + "3"은 주문과 관련하여 1 + (2 + "3")과 동일하지 않습니다. 마찬가지로 대입 연산자 a *= b += 5를 들어 100/10/2 != 100/(10/2)

&&||보다 우선합니다, a *= (b += 5)

+1

그리고 괄호의 내용이 먼저 평가됩니다. 따라서 AND의 직접적인 OR과의 전투가 아니기 때문에 질문의 대부분의 예는 부적합합니다. –

+1

@DuncanJones 관련 메모에서; 순서가 무엇인지 확실하지 않거나 읽는 사람이 확실하지 않다고 생각되면()를 사용하여 명확하게하십시오. –

+1

도로에서이 쇼를 가져 가야합니다 ...:-) –

4

예. , 나는 그것이&&||보다 우선해야하는 이유 을 이해하는 좋은 아이디어라고 생각하지만 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

: 그것은는 API 문서가 표는 연산자 우선 순위 목록이를 찾기 위해 매우 쉽게 전자는 여러 가지 방법으로 인 곱셈 적 동작 인 반면, 후자는 부가적인 동작이다. AB의 두 가지 독립 이벤트를 고려하면 (A and B)의 확률은 p(A)*p(B)이고 (A or B) 확률은 p(A) + p(B)입니다. *가 +보다 우위에 있다는 잘 알려진 규칙과 유사하게 논리 연산자가 그런 방식으로 평가되어야하는 이유가 설명됩니다.

관련 문제