为了账号安全,请及时绑定邮箱和手机立即绑定

为什么不会死循环?

http://img1.sycdn.imooc.com//570cd81300018da307610620.jpgnum/=10.0不应该是99.9   9.99    0.999   0.9999.....吗,为什么不会死循环?

正在回答

5 回答

因为num的类型是int整形, 当除以10, 或者除以10.0, 结果都会强制转换成int

也就是说num的变化是从最开始的999->99->9->0, 一共循环3次

可以在num/=10.0;的下面那行添加一个输出测试语句, 如 System.out.println(num); 这样会看到num的变化

0 回复 有任何疑惑可以回复我~
#1

林林林先森Louis 提问者

非常感谢!
2016-04-12 回复 有任何疑惑可以回复我~

“num/=10.0不应该是99.9   9.99    0.999   0.9999.....吗,为什么不会死循环?“   

针对你的问题  这里的/不是除法啊  而是取整 所以999->99->9->0

1 回复 有任何疑惑可以回复我~

在num/10.0的语句中,你没有强制转换类型,num还是个整数,而不是小数,正如你提到的会进行取整,9.99会取整成为9,0.99会取整为0。

事实上没有必要除以10.0啊,直接除以10不就可以吗?

0 回复 有任何疑惑可以回复我~

num/=10.0 应该是99,9,0    你在num/=10.0下面可以输出num的当前值,这样就知道了

0 回复 有任何疑惑可以回复我~

因为num/=10,num的值在不断改变

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165454    人
  • 解答问题       17585    个

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

进入课程

为什么不会死循环?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信