汤钺
2016-01-29 23:16
if (num >= 0 && num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是个"+ count+"位的数!");
} else{
System.out.println("输入有误!");
}
为什么count++和num/=10可以实现count是一个数的位数??..看不懂..
while (num != 0) { count = count + 1; num = num / 10; }
以1234为例:
第一次循环:num!=0成立
count=0+1=1
num=1234/10=123
第二次循环:num!=0成立
count=1+1=2
num=123/10=12
第三次循环:num!=0成立
count=2+1=3
num=12/10=1
第四次循环:num!=0成立
count=3+1=4
num=1/10=0
num==0循环结束
count即为位数
num/=10 的意思是num/10=num(这里计算num的新值,不是常规数学表达式。)
999/10=99.9 因为num是整数 所以在这里999/10=99 while(num!=0) count++ num/=10 循环这里。
999999999/10=99999999 count+1 num赋值99999999 count赋值1 循环99999999/10=9999999 count赋值2 循环99999999/10=9999999 num=9999999 count=3 循环9999999/10 num=999999 count=4 循环999999/10=99999 count=5 循环99999/10=9999 conut=6 循环9999/10 =999 count=7
循环999/10 =99 count=8 循环99/10=9 count=9 循环9/10=0 循环结束 count=9 即九位数。 你这个数弄的太长了!!!!
Java入门第一季(IDEA工具)升级版
1167352 学习 · 18630 问题
相似问题