这是一个强制转型的过程!
i+=5f 因为i是int类型,而5f是float类型,你写的这个表达式其实就是将float类型强制转换成int类型,然后再进行计算的!
你可以把这个表达式该一下数值,你就会看的更明显,例如:i+=5.345f
这样的输出结果仍就是8,因为5.345f强制转型为int的时候,小数点后面的几位是被忽略的!
你可以自己试试!
i+=5f 因为i是int类型,而5f是float类型,你写的这个表达式其实就是将float类型强制转换成int类型,然后再进行计算的!
你可以把这个表达式该一下数值,你就会看的更明显,例如:i+=5.345f
这样的输出结果仍就是8,因为5.345f强制转型为int的时候,小数点后面的几位是被忽略的!
你可以自己试试!
int i=3;
i+=5f;
System.out.println(i);
为什么第二正确,第一个有错 。刚才发错了
谢谢大家~~~~~~ 关键是为什么第二个能强制转换,第一个就不可以呢
?
i += 5f;相当于:int i = 3;
i = i + (int)5f;
第二个 就是 Dan1980(String someGoodAdvise)说的那样啦