为什么不会死循环?

来源:4-15 编程练习

林林林先森Louis

2016-04-12 19:13

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

写回答 关注

5回答

  • 我是猫猫虫
    2016-04-12 19:28:31
    已采纳

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

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

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

    林林林先森L...

    非常感谢!

    2016-04-12 19:45:05

    共 1 条回复 >

  • 小F的世界观
    2016-04-12 19:51:15

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

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

  • Stay5
    2016-04-12 19:28:31

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

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

  • 勇士要夺冠
    2016-04-12 19:27:29

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

  • feel_0与_1
    2016-04-12 19:23:37

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

Java入门第一季(IDEA工具)升级版

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

1165552 学习 · 17587 问题

查看课程

相似问题