if (num >= 0 && num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是个"+ count+"位的数!");
} else{
System.out.println("输入有误!");
}
请教这个语法,这个原理是如何得来的,为什么我输入2位数就会输出两位数,其中count与num没有任何关联,百思不得其解,求解答。
最外层判断是否是十位的数字,如果是十位以内的则进行循环操作;
count++应该不用解释吧,就是每次满足条件执行循环就会加一,你应该就是不理解 num/=10;这一行。
由于是int类型,每次除完会自动取整数,以999为例:
num=999;
num/=10; //第一次 num的值变为99
num/=10; //第二次 num的值变为9
num/=10; //第三次 num的值变为0 (执行完这次循环已经不能满足条件num!=0,将会跳出循环)
num是int型变量num/10的时候只保留了整数部分舍去余数,不存在小数,所以会每除一次少一位,同时count++使得计数自加,当num=0时循环条件不满足自动退出
count++执行一遍,在执行num = num / 10 ,num就会少一位,刚好