林林林先森Louis
2016-04-12 19:13
num/=10.0不应该是99.9 9.99 0.999 0.9999.....吗,为什么不会死循环?
因为num的类型是int整形, 当除以10, 或者除以10.0, 结果都会强制转换成int
也就是说num的变化是从最开始的999->99->9->0, 一共循环3次
可以在num/=10.0;的下面那行添加一个输出测试语句, 如 System.out.println(num); 这样会看到num的变化
“num/=10.0不应该是99.9 9.99 0.999 0.9999.....吗,为什么不会死循环?“
针对你的问题 这里的/不是除法啊 而是取整 所以999->99->9->0
在num/10.0的语句中,你没有强制转换类型,num还是个整数,而不是小数,正如你提到的会进行取整,9.99会取整成为9,0.99会取整为0。
事实上没有必要除以10.0啊,直接除以10不就可以吗?
num/=10.0 应该是99,9,0 你在num/=10.0下面可以输出num的当前值,这样就知道了
因为num/=10,num的值在不断改变
Java入门第一季(IDEA工具)升级版
1165552 学习 · 17587 问题
相似问题