求解答,错在那里

来源:4-15 编程练习

不想再做设计的阿碳

2016-01-10 17:42

public class HelloWorld{ 

    public static void main(String[] args){ 

        int num = 999; 

        int count = 0;    

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

          do{count++;num/=10};

          while (num != 0)

            }

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

        } else{

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

        }

    }

}


写回答 关注

2回答

  • 是王小二呀
    2016-01-10 22:15:40
    已采纳
    public class HelloWorld{ 
        public static void main(String[] args){ 
            int num = 999; 
            int count = 0;    
            if (num >= 0  && num<=999999999){
              do{count++;num/=10};
              while (num != 0)
                }//首先do-while循环的语法错了,应该把while写在外面,并用英文分号结尾
                System.out.println("它是个"+ count+"位的数!");
            } else{
                System.out.println("输入有误!");
            }
        }
    }
    /*其次 最重要的一点是:int型变量是一个字节的,也就是最大可表示的数是127(最小到-128),因此你的sum会在0-127之间循环往复,永远到不了999999999,所以你的if语句只是保证sum是个小于128的非负数,在do-while循环这边会只作用一次也就是sum等于0的这一次,所以你的错不仅仅是一个语法错误,在变量的定义上也有问题,随之而来的问题就在你的循环或者条件判断上出现了逻辑上的错误,建议定义基本类型变量时,仔细考虑你的目的用途*/


    是王小二呀

    汗,(⊙﹏⊙),虽然int型的数最大42亿多,是小于9亿9的,刚巧不巧你这个情况对了, 但是int是4字节的,,,我说错了,不好意思兄弟,

    2016-01-11 19:00:37

    共 2 条回复 >

  • Its_forever
    2016-01-10 17:54:18
    do{
        count++;
        num/=10;
        }
    while (num != 0);

    你的num/=10分号的位置不对。

    while (num != 0)后面少了一个分号。

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

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

1165172 学习 · 17581 问题

查看课程

相似问题