2012-01-06 9 views
-1

I持っている変数decelrations、割り当てや変数declerationsJavaの演算子の優先順位式の評価

変数e式の中で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

実は答えは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 

は、演算子の優先順位のリンクされていますOperator precedence

関連する問題