为了账号安全,请及时绑定邮箱和手机立即绑定

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

如下面的程序,想知道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 回答

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

                第二次循环99.9/10=9.9

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

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


3 回复 有任何疑惑可以回复我~
#1

暴雨梨花粥 提问者

非常感谢!
2018-04-28 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

qq_Yourebeautif_0

亲爱的你有什么依据?
2018-05-21 回复 有任何疑惑可以回复我~
#2

慕函数5381313 回复 qq_Yourebeautif_0

int强制类型转换啊 不是吗
2018-05-26 回复 有任何疑惑可以回复我~
#3

qq_Yourebeautif_0 回复 慕函数5381313

不是啊压根不是一个概念、
2018-05-29 回复 有任何疑惑可以回复我~
#4

YzeVoliii 回复 qq_Yourebeautif_0

num本来的类型是int,所以num/10分别只能是99 9 0,我觉得前面一个人说得挺对的,但是并不是强制类型转换吧,只是本来就是整型。
2018-06-06 回复 有任何疑惑可以回复我~
查看1条回复

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

999/10 = 99.9 循环一次

99.9/10 =  9.99 循环二次

9.99/10 = 0.99 循环三次

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

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信