
4-3 基本数学运算
4-3-1 四则运算
Java的四则运算是指加(+)、减(-)、乘(*)和除(/)。
程序实例ch4_3.java:Java四则运算的实例。

执行结果

上述最需要注意的是除法部分,第11行是整数除法同时将结果指定给整数,在整数除法中余数会被舍去,所以第12行结果是8。第13行是整数除法同时将结果指定给浮点数,在整数除法中余数会被舍去,所以第14行结果是8.0。第15行是浮点数除法同时将结果指定给浮点数,在浮点数除法中余数会被保留,所以第16行结果是8.33…34。第17行是格式化浮点数的输出结果。
4-3-2 求余数%
求余数符号是%,可计算出除法运算中的余数。
程序实例ch4_4.java:求余数运算。

执行结果

程序实例ch4_5.java:幼儿园班上有20人,有90颗葡萄,请问每位幼儿园学生可以分几颗葡萄,同时会剩下多少颗葡萄。

执行结果

4-3-3 递增与递减运算符
++是递增运算符,可以让变量值加1;--是递减运算符,可以让变量值减1。
程序实例ch4_6.java:递增和递减运算的基本应用。

执行结果

递增运算符(++)或是递减运算符(--)可以放在变量的前面,也可以放在变量的后面。若是放在变量的前面,会先执行递增或递减再执行表达式,这时将此运算符称为前置运算符。若是放在变量的后面,会先执行表达式再执行递增或递减,这时将此运算符称为后置运算符。
程序实例ch4_7.java:前置与后置运算符的应用。

执行结果

对上述第5行而言,++是放在i的左边,这是前置运算所以会先执行i加1,得到i等于11,再将i乘以10,所以最后得到第6行输出value的值是110。对上述第7行而言,++是放在j的右边,这是后置运算所以会先执行j乘以10,这时value的值是100,然后j加1,得到j等于11,所以最后得到第8行输出value的值是100。
4-3-4 正负号
+号在程序设计中可以当作加法符号,也可以当作正号。-号在程序设计中可以当作减法符号,也可以当作负号。
程序实例ch4_8.java:负号应用的实例。

执行结果

上述第5行x是-10,-10+5结果是-5,经过负号转换得到5,5*3是15。
4-3-5 无限大
Java运算时是会出现正或负无限大,例如,正浮点数除以0,可以得到正Infinity。负浮点数除以0,可以得到负Infinity。
程序实例ch4_9.java:正无限大Infinity与负无限大-Infinity。

执行结果

4-3-6 发生异常
如果将整数除以0,会得到程序异常,然后程序中止。
程序实例ch4_10.java:将整数除以0,造成程序异常中止运行。

执行结果

4-3-7 非数字
NaN(非数字)即Not a Number,如果将浮点数取0的余数,将得到NaN。
程序实例ch4_11.java:浮点数取0的余数。

执行结果

4-3-8 Java语言控制运算的优先级
Java语言碰上计算式同时出现在一个指令内时,其计算优先次序如下:优先级1最高,优先级4最低;如果出现在同一表达式中则按由左到右顺序运算。
(1)括号()。
(2)递增(++)、递减(--)、正号、负号。
(3)乘法、除法、求余数(%),彼此依照出现顺序运算。
(4)加法、减法,彼此依照出现顺序运算。
程序实例ch4_12.java:Java语言控制运算的优先级的应用。

执行结果
