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吗
/是整数除的意思 9/10==0
num/=10;这个作用是每次循环都去掉一位
直到位数为0
count为0这个意思就是假设他是0位,循环一次加一位
我觉得应该这样理解,999是整数,定义的时候用的int,int是整数数据类型,只能存储整数,不能存储小数点,999每次除10的 时候,程序默认把小数点抹掉了,比如第一次循环99.9,其实是99进行的下次循环判断,然后是9.9其实是9,在下一次0.9,变成0,一共循环三次count==3,最后输出结果是3位数,其实就是用循环了几次来判断他是几位数的。
首先num在0-999999999之间,以999为例。
当num不等于0时。count递增。(因为不等于0时他至少是1位数)这时num/10=99,再循环到if。
三次循环之后num/10=0.99(小于1)那么系统直接输出count。
else后面的表示。当while条件不成立时(num=0)直接输出输入有误。