没搞懂这个例子的意思 如果输入999,一直除10永远也不等于0啊 为什么会结束循环呢

来源:4-15 编程练习

慕移动7208282

2017-09-27 10:24

int num = 999;
int count = 0;
while(num!=0){
    count++;
    num/=10;
}

比如输入999 也除不尽啊 永远也不等于0 不是永远也不会结束循环    

写回答 关注

2回答

  • 鲲鹏_斯坦森
    2017-09-27 11:10:22

    Java中的“/”符号表示除法,得出的结果只能是整数部分。

    第一次循环:999 / 10 --> 90,num就变为了90,

                        数学中应该是 999 除以 10 = 90……99,Java中的除法符号只取整数部位90,余数的99不做考虑;

    第二次循环:90 / 10 --> 9,num变为了9;

                    数学中应该是  90 除以 10 = 9,取整数部分就是9了;

    第三次循环:9 / 10 -->0,num变为了0,

                    数学中应该是 9 除以 10 = 0……9,取整数部分0,余数的9不做考虑。

    综上,第三次循环结束后,num就变为了0,count也变为了3,

    在进行第四次循环的条件判断是发现num不符合条件,循环结束。

    鲲鹏_斯坦森 回复慕移动720...

    额。。。确实是,这里马虎了,“/”只是做完整除法。 第一次循环:999 / 10 --> 99.9,取整数部分,num就变为了99, 第二次循环:99 / 10 --> 9.9,取整数部分,num变为了9; 第三次循环:9 / 10 -->0.9,取整数部分,num变为了0, 综上,第三次循环结束后,num就变为了0,count也变为了3。 感谢兄台指出在下不准确的地方,一起学习了。

    2017-09-28 15:31:01

    共 2 条回复 >

  • qq_叶里傅_0
    2017-09-27 11:01:41

    只取整数部分. 如 23/10 ,结果为2

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

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

1166813 学习 · 17593 问题

查看课程

相似问题