课程
/后端开发
/Java
/Java入门第一季(IDEA工具)升级版
num/=10.0不应该是99.9 9.99 0.999 0.9999.....吗,为什么不会死循环?
2016-04-12
源自:Java入门第一季(IDEA工具)升级版 4-15
正在回答
因为num的类型是int整形, 当除以10, 或者除以10.0, 结果都会强制转换成int
也就是说num的变化是从最开始的999->99->9->0, 一共循环3次
可以在num/=10.0;的下面那行添加一个输出测试语句, 如 System.out.println(num); 这样会看到num的变化
林林林先森Louis 提问者
“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的值在不断改变
举报
0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始
1 回答请问为什么出现死循环?
3 回答死循环了。。。
4 回答为什么循环会断掉?
6 回答为什么我这个会一直循环不停
2 回答求解是一个死循环