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

这样哪里错了?

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;


    do {

        count=count+1;

        num=num % 10;

    } while (num % 10 != num)


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


}

}


提问者:潮声 2016-01-06 16:19

个回答

  • liu4444
    2016-01-10 17:09:52

    %他是求余的   用/

  • 彦钧
    2016-01-06 17:12:47

    你应该是想除以10吧,把'%'改成'/'即可;

    另建议把代码写到方法体中,不要写在判断语句处;

    代码修改后如下:

    public class HelloWorld{

        public static void main(String[] args){

            int num = 999;

            int count = 0;

            while (num != 0) {

                count = count+1;

                num = num/10;
            }

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

        }    

    }


  • Its_forever
    2016-01-06 16:50:40

    num % 10 != num 改为 num >0

  • Z家兄
    2016-01-06 16:47:55

    应改为

    public class HelloWorld{

    public static void main(String[] args){

    int num = 999;

    int count = 0;


        do {

            count=count+1;

            num=num / 10;

        } while (num / 10 != num);


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


    }

    }



  • 万能极客
    2016-01-06 16:40:06

    问题在于

    do {

            count=count+1;

            num=num % 10;

        } 

    中,num=num%10,第一次运行:

    num=999;

    执行num=num%10后,num=9;

    退出循环了。所以你的结果 是1位数

    不该用mod方法求位数,正确的:

    int num = 999;

    int count = 0;

     do {

           count=count+1;

        } while((num=num/10)!=0);//注意这里有个分号。问题描述中的没有,是会报错的

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


  • Caballarii
    2016-01-06 16:31:12

    %是模运算,取余数的,你需要的是除法/