2012-01-06 4 views
-1

내가 가지고있는 변수 decelrations, 할당 및 변수 declerations합니다자바 연산자 우선 순위 식 평가

다음

변수 전자 식의 evaulated 변수의 값을 반환해야하는 식 문이다;

e 변수에서 opperators의 precdence의 순서는 무엇입니까?

등식 = 60;

계산기를 사용하면 422를 얻습니다.

int a, b, c, d; 

a = 10; 
b = 2; 
c = 1; 
d = 20; 

e = a + b * d/c + a + b/d; 


e = 10 + 2 * 20/1 + 10 + 2/20; 

e = 60; 
+0

http://bmanolov.free.fr/javaoperators.php – mcfinnigan

+4

난 당신이 계산기에 422을 얻을 수있는 방법을 볼 실패합니다. –

답변

3

Operator precedence는 사실 대답은 60.1하지만 variables 이후가 60을 표시하는 int입니다 그래서 당신은. 그것은 다음과 같이 일어나고

10 + (2 * (20/1)) + 10 + (int)(2/20) = 10 + (2 * 20) + 10 + (int)0.1 
= 10 + 40 + 10 + 0 = 60 
2

Here is a link 개요 연산자 우선 순위. 귀하의 결과에 관해서도 이것은 정수 나누기 (결과의 바닥을 차지합니다 : 예 : 2/20 = 0) 때문일 수 있습니다.

0

학교와 마찬가지로 곱셈과 나눗셈이 덧셈보다 우선합니다.

다음
10 + 2 * 20/1 + 10 + 2/20 = 10 + 40 + 10 + 0 = 60 
0
* takes first precedence so first, 2*20 =40, 10 + 40/1 + 10 + 2/20; 
/takes precedence so , 10 + 40 + 10 + 0; 
+ takes precedence so, 60 

는 연산자 우선 순위에 대한 링크는 다음과 같습니다 :

관련 문제