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

请大佬解释一下不是很理解他的代码含义

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


他这里循环的是什么,只要num不等于0,count就加一,那一开始count为0,他这里什么时候count停止增加

还有num/=10作用是什么

比如说num是9,那9/=10不是0.9吗


提问者:qq_慕斯3385410 2019-03-11 18:25

个回答

  • 慕函数6131570
    2019-03-11 18:33:27
    已采纳

    /是整数除的意思 9/10==0

    num/=10;这个作用是每次循环都去掉一位

    直到位数为0

    count为0这个意思就是假设他是0位,循环一次加一位


  • 身外韶光
    2019-03-14 21:33:06

    我觉得应该这样理解,999是整数,定义的时候用的int,int是整数数据类型,只能存储整数,不能存储小数点,999每次除10的 时候,程序默认把小数点抹掉了,比如第一次循环99.9,其实是99进行的下次循环判断,然后是9.9其实是9,在下一次0.9,变成0,一共循环三次count==3,最后输出结果是3位数,其实就是用循环了几次来判断他是几位数的。

  • 逝颜丶
    2019-03-12 21:59:44

    首先num在0-999999999之间,以999为例。

    当num不等于0时。count递增。(因为不等于0时他至少是1位数)这时num/10=99,再循环到if。

    三次循环之后num/10=0.99(小于1)那么系统直接输出count。

    else后面的表示。当while条件不成立时(num=0)直接输出输入有误。