一、举例生动理解如下:
已知 int x=1, int y=10 , int z=5 求y+=z–/++x
代码如下
int x=1;
int y=10;
int z=5;
y+=z--/++x;
System.out.println(y);
结果如下图所示:
分析:
完整运算式是 y = y + ( (z–) / (++x) )
但结果算式应当是代数式 y = y + ( z / (x+1) )
(1)z–:先使用再–,因为–符号在右边则表示z的数值减1,但返回值并不会立即进入到算式中,算式中仍利用z的原始值,
但在之后的语句中若有z则调用z的新值即z原值-1
(2)++x表示x加1并将结果立即调用到当前算式中
(3)注意:整型与整型运算得到结果为整型
附加
注意:整型与整型运算得到结果为整型
其他的则需考虑数据类型的转换,例如运算时,byte、short、char自动转换为int再计算
二、附加
注意:整型与整型运算得到结果为整型
其他的则需考虑数据类型的转换,例如运算时,byte、short、char自动转换为int再计算
double(默认类型)
(1) 自动转换(隐式转换):
1. 小 -> 大
2.特殊:long -> float
3.byte、short、char计算时,默认转换为int再计算
(2)手动转换(强制转换):变量类型 变量名称 = (目标转换类型)变量值;
1.大 -> 小
2.数字精度缺失,有风险