完全理解不了,求解释,代码是抄答案的,是不是太笨了o(╥﹏╥)o

来源:4-15 编程练习

慕勒9944832

2020-10-28 11:02

public class HelloWorld{

public static void main(String[] args){

int num = 9999;

int count = 0;

if(num>=0&&num<=999999999){

    while(num!=0){

        count++;

        num/=10;

    }

    System.out.println("它是个"+count+"位的数!");

}else{

    System.out.println("输入有误!");

}

}

}


写回答 关注

8回答

  • weixin_慕函数9095607
    2021-03-30 23:43:40

    int num = 9999;

    int count = 0;

    if(num>=0&&num<=999999999){

        while(num!=0){

            count++;

            num/=10;

        }

        System.out.println("它是个"+count+"位的数!");

    }else{

        System.out.println("输入有误!");

    }

    while第一次判断条件成立,执行:count 变成1了  num变成999.9了    

    while第二次判断条件成立,执行:count变成 2了  num变成99.9了

    while第三次判断条件成立,执行:count变成3了 num变成 9.9了

    while第四次判断条件成立,执行:count变成4了 num变成 0.9,因为是int变量类型(整数),所以num变成了0

    while第五次判断条件不成立,结束while循环,进入System

  • weixin_慕函数9095607
    2021-03-30 23:39:47

    while第一次判断条件成立,执行:count 变成1了  num变成10了    
    while第二次判断条件成立,执行:count变成 2了  num变成1了
    while第三次判断条件成立,执行:count变成3了 num变成 0.1,因为是int变量类型,所以num变成了0
    while第四次判断条件不成立,结束while循环,进入System

    weixin...

    如果int num=9999; while第一次判断条件成立,执行:count 变成1了 num变成999.9了 while第二次判断条件成立,执行:count变成 2了 num变成99.9了 while第三次判断条件成立,执行:count变成3了 num变成 9.9了 while第四次判断条件成立,执行:count变成4了 num变成 0.9,因为是int变量类型(整数),所以num变成了0 while第五次判断条件不成立,结束while循环,进入System

    2021-03-30 23:42:44

    共 1 条回复 >

  • weixin_慕移动1176470
    2020-11-04 11:53:41

    说错了,跟int没有关系,在Java中,/出来的都是整数,且并不会四舍五入。

  • qq_慕数据1267178
    2020-11-03 21:09:30

    因为是/10,最后剩一个数的时候除出来是小数,因为num是int型的,会默认为0,计数器额外+1

  • qq_慕数据1267178
    2020-11-03 21:06:27

    public class HelloWorld{
        public static void main(String[] args){
            int num = 999;
            int count = 0;

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

    qq_慕数据... 回复慕姐1003...

    12/10得出num是1,1/10的0.1,但num是int型,小数部分会丢弃,循环条件不成立,结束循环

    2020-11-05 14:30:42

    共 2 条回复 >

  • weixin_慕仰7599311
    2020-11-02 14:23:38

    public class HelloWorld{

    public static void main(String[] args){

    long num = 1111111111;

    int count = 1;

    while( num / 10 != 0 ){

            count +=1;

            num /= 10; 

        }

    if(count>=10){

       System.out.println("重新输"); 

    }else

       System.out.println("它是个"+count+"位的数");

     }

    }


  • 慕工程4430411
    2020-10-28 15:22:36

    public class HelloWorld{

        public static void main(String[] args){

            int num = 999;

            int count = 0;

            while(num > 0){

                num /= 10;

                count++;

                if(num == 0)

                {

                    System.out.println("它是个" + count + "位的数");

                }

            }

        }

    }


    慕容3257...

    老师,int不是只能取整数吗,这里为什么不是 float num=999

    2021-01-23 19:59:59

    共 3 条回复 >

  • 慕工程4430411
    2020-10-28 15:15:31

    就是给一个数值,让它极大,然后呢,取出循环中通用的数值.

     int值除以一个数值,会产生一个 大于整数的值。

        比如:2位数是在 10-99 就是说999 / 99, 还是0;

    就是/999,若为0,它就是这个count位数,

    慕勒9944... 回复慕工程443...

    我在回头看看循环先吧,现在很懵

    2020-10-28 18:37:17

    共 5 条回复 >

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

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

1165172 学习 · 17581 问题

查看课程

相似问题