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

正在回答

1 回答

这个循环的逻辑就是:假如num为两位数,两位数除以10得一位数对吧,(同理三位数除以10就是两位数),然后count自加1,此时count为1,好,回到循环,判断条件的1位数不等于0,循环条件满足,那么继续往下走,1位数除以10等于0对吧,此时count自加1,count的值变为2,好,再次回到循环的判断条件,0!=0的结果为fause,循环条件不满足,循环块不运行,到这里for循环结束,打印,这个数为count位数,count的值为2,也就是打印2位数。不知道我这样说你能明白不。

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

寇丁玛斯特

我自己推导了一下,是不是这样理解更好: 因为 num 是 int,所以用 num 一直去 /= 10,得到的总是一个整数,比如我们用题里的 999 一直去除 10,第一次得到的是 99,此时 count++,计为 1,再次循环,得到 9,count++得到 2,再次循环,得到 0,count++得到 3,再往后计算就条件不成立,没法继续 /= 10 了,所以此时循环结束,打印 count 计算的结果。就是 3 位数
2022-05-19 回复 有任何疑惑可以回复我~
#2

寇丁玛斯特

这也是为什么有一个问答里有同学问 count++和 num /=10的顺序能否颠倒,我自己试了下是无所谓前后的,因为 count++其实只是依靠 if 和 while 的组合条件在无脑累加 1,加到 while 执行不下去的时候就停止累加打印出来了
2022-05-19 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么这里要这个

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