输入999,则输出“它是个3位数!”

来源:4-15 编程练习

菜鸟的羽毛

2016-04-11 22:34

if (num >= 0  && num<=999999999){
while(num != 0){
count++;
num/=10;
}
System.out.println("它是个"+ count+"位的数!");
} else{
System.out.println("输入有误!");
}

请教这个语法,这个原理是如何得来的,为什么我输入2位数就会输出两位数,其中count与num没有任何关联,百思不得其解,求解答。

写回答 关注

3回答

  • bcp9527
    2016-04-11 22:53:31
    已采纳

    最外层判断是否是十位的数字,如果是十位以内的则进行循环操作;

    count++应该不用解释吧,就是每次满足条件执行循环就会加一,你应该就是不理解 num/=10;这一行。

    由于是int类型,每次除完会自动取整数,以999为例:

    num=999;

    num/=10;    //第一次  num的值变为99

    num/=10;    //第二次  num的值变为9

    num/=10;    //第三次   num的值变为0 (执行完这次循环已经不能满足条件num!=0,将会跳出循环)

    菜鸟的羽毛 回复bcp952...

    谢谢!!!

    2016-04-14 21:52:18

    共 4 条回复 >

  • The_Machinist
    2016-04-11 23:03:16

    num是int型变量num/10的时候只保留了整数部分舍去余数,不存在小数,所以会每除一次少一位,同时count++使得计数自加,当num=0时循环条件不满足自动退出

  • 热爱学习的雷先生
    2016-04-11 22:49:02

    count++执行一遍,在执行num = num / 10 ,num就会少一位,刚好 

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165550 学习 · 17586 问题

查看课程

相似问题