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

求解答,错在那里

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("输入有误!");

        }

    }

}


提问者:不想再做设计的阿碳 2016-01-10 17:42

个回答

  • 是王小二呀
    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的这一次,所以你的错不仅仅是一个语法错误,在变量的定义上也有问题,随之而来的问题就在你的循环或者条件判断上出现了逻辑上的错误,建议定义基本类型变量时,仔细考虑你的目的用途*/


  • Its_forever
    2016-01-10 17:54:18

    do{
        count++;
        num/=10;
        }
    while (num != 0);

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

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