while循环判断一个数字是几位数的问题关于count

来源:4-15 编程练习

暴雨梨花粥

2018-04-27 23:49

如下面的程序,想知道count在这里面的意义是什么,我目前的困惑是:num和count貌似没有明显的交集,为什么却可以通过count的运算来推断出num的位数?我感觉应该是我钻牛角尖了,百思不得其解。求前辈们解惑。

if (num >= 0  && num<=999999999){

while(num != 0){
count++;
num/=10;
}
System.out.println("它是个"+ count+"位的数!");
} else{
System.out.println("输入有误!");
}

写回答 关注

3回答

  • 慕前端8563023
    2018-04-28 06:17:22
    已采纳

    举个例子:第一次循环999/10=99.9

                    第二次循环99.9/10=9.9

                   第三次循环9.9、10=0.99(<1)循环结束

    循环3次3位数      count记载循环次数就是位数


    暴雨梨花粥

    非常感谢!

    2018-04-28 23:26:51

    共 1 条回复 >

  • 杀手cool
    2018-05-20 03:48:01

    你们都答错了 /是只取整数部分的 分别是 99  9   0  判断条件是!=0 所以count加了三次后 就退出while循环了

    YzeVol... 回复qq_You...

    num本来的类型是int,所以num/10分别只能是99 9 0,我觉得前面一个人说得挺对的,但是并不是强制类型转换吧,只是本来就是整型。

    2018-06-06 00:07:03

    共 4 条回复 >

  • qq_要笑_03502085
    2018-05-19 21:31:49

    上面答案我觉得不对 我也是萌新自己研究了一番   sum=999 可以循环三次是因为 sum/=10等于 sum=sum/10

    999/10 = 99.9 循环一次

    99.9/10 =  9.99 循环二次

    9.99/10 = 0.99 循环三次

    因为定义的是int整形变量所以无法再进行循环所以count++到3时就结束了

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

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

1165172 学习 · 17581 问题

查看课程

相似问题