问答详情
源自:4-15 编程练习

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

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

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

提问者:慕移动7208282 2017-09-27 10:24

个回答

  • 鲲鹏_斯坦森
    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不符合条件,循环结束。

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

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