public class HelloWorld{ public static void main(String[] args){ int num = 999; int count = 0; if (num >= 0 && num <= 99999){ while(num != 0){ count++; num /= 10; } System.out.println("它是个"+ count+"位的数!"); }else{ System.out.println("输入错误!"); } }}谁能给我解释下代码是如何循环,还有就是num /= 10;的作用。
4 回答
已采纳

IMOOCER_Vi
TA贡献7条经验 获得超4个赞
public class HelloWorld{ public static void main(String[] args){ int num = 999; int count = 0; //当num值在范围内的时候进入while语句 if (num >= 0 && num <= 99999){ //当num不等于0的时候,就会一直循环执行语句里的内容 while(num != 0){ count++; //count用于计算循环的次数,也就是num的位数 num /= 10; //第一次;num=999,num/=10就是num=num/10,因为num是整形数,所以得99,下次循 } //环再执行一次就是9,第三次循环num=0,随后退出循环 System.out.println("它是个"+ count+"位的数!"); }else{ System.out.println("输入错误!"); } } }

白马少年醉春风
TA贡献2条经验 获得超3个赞
while(num != 0) 当num不等于0就循环,这样可能会无限循环下去,但是呢,num/1=10就是num=num/10,这样除下去 num迟早会小于1的,因为定义了sum是整形,当sum=0点几的时候 会自动转换成0的 所以循环就会停止 然后输出结果.

努力提升
TA贡献65条经验 获得超15个赞
首先这个代码的判断范围最大为5位数,999显示满足这个条件。然后进入循环,num/ = 10, 就相当于num = num / 10.
第一次循环之后count = 1, num = 99//因为num 是int 类型只保留整数部分,依次类推。
再经过2次循环count = 3, num = 0,不满足循环条件执行之后的代码得出999是个3位数
添加回答
举报
0/150
提交
取消