2015-05-04 34 views
1

是System.out.print(3 + 2 + 1-5 + 4%2-1/4 + 6)(初级)的Java数学序列

输出:7

如何执行的序列数学运算符工作,java遵循代数PEMDAS或其他东西。

+0

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html用于学习操作符优先级 –

回答

3

是的,Java遵循操作的标准算术顺序。

但是,您可能期望得到与您得到的答案不同的答案。这是因为值1/4使用整数算术评估,因为14都是整数。 1/4在整数运算中的结果为0.

要让编译器使用浮点数来评估它,请使用类似1.0/4.0的东西。这样做后,你应该得到浮点结果6.75(这可能是你所期望的)。

+0

正确。这是如何执行的(3 + 2 + 1-5 +(4%2) - (1/4)+6)。正如所解释的,1/4将被评估为0,因为它们中的至少一个应该是浮点数。此外,如果您将值存储在变量中,则该变量也应该是float或double,否则在小数位之后将丢失任何内容。类似的,(float x =(3 + 2 + 1-5 +(4%2) - (1.0f/4)+6)) – Anshuman

2

Java将遵循优先顺序(操作顺序)

()第一

*,/,%第二

+, - 3

这就是你”需要这个问题但是还有更多的Here

0

是的,Java将遵循相同的操作顺序。唯一的变化是%,它遵循与乘法和除法相同的顺序。