问答详情
源自:4-15 编程练习

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

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

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

提问者:菜鸟的羽毛 2016-04-11 22:34

个回答

  • 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,将会跳出循环)

  • 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就会少一位,刚好