2012-09-03 5 views
-1

왜 대부분의 프로그래밍 언어에서 수학 연산자 우선 순위가 논리 연산자 우선 순위와 다른가요?수학 VS 논리 연산자 우선 순위

의미 : 왜 x/y * z 그렇게 /*로하지만 논리 연산자에 같은 우선 순위를 가지고 x || y && z 그래서 x || (y && z) 로 평가 것 (x/y) * z로 평가,이 구별 (일부 하드웨어 이유, 최적화 기술) 나에 대한 논리적 이유가있다 프로그래밍 언어 제작자가 제작하기로 결정한 방식입니까?

+2

'x + y * z'를 고려하십시오. 산술 연산자에는 우선 순위 계층 구조도 있습니다. –

+0

단서가 아닙니다. 어쨌든 나는 항상 그러한 것들을 버리지 마라. 나 (그리고 내 코드를 유지/강화해야하는 불행한 사람)는 그렇게 생각하지 않아도된다. –

+0

@GregHewgill 나는 100 % 당신과 함께 있지만 왜 둘 다 같은 우선 순위를 가지지 않는지 이유를 생각해 낼 수 없다. (*와 +)보다 나를 – zeacuss

답변

3

프로그래밍에 관한 것이 아닙니다. 적 부울 대수와 함께 일한 적이 있습니까? AND는 OR보다 우선 순위가 높습니다. 부울 대수는 17 세기에서 나옵니다 (이 규칙이 언제 생겼는지는 모르지만). 이 두 개는 *와 +로 쓰여있어서 그 점에 대한 단서를 제공합니다 (하지만 다른 사람을 혼동시킬 수 있음).

프로그래밍 언어 디자이너는 방금 산술 연산자의 우선 순위를 수행 한 것처럼 이러한 우선 순위 규칙을 수행했습니다.

0

아마 프로그래밍 언어 제작자가 제작하기로 결정한 방식 일 것입니다.

특히, 괄호가없는 경우 프로그래머는 OR 문 앞에 AND 문을 평가하기를 원할 수 있습니다.

다른 말로하면 || "더하기 또는 빼기를 왼쪽에서 오른쪽으로"와 같으며 & &은 "왼쪽에서 오른쪽으로 곱하기 나누기"와 비슷합니다.

또한 기억하십시오! (아니)보다 우선 순위가 더 높음 & & (AND)