为了账号安全,请及时绑定邮箱和手机立即绑定

这样哪里错了?

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 "位的数!");


}

}


正在回答

6 回答

%他是求余的   用/

0 回复 有任何疑惑可以回复我~

你应该是想除以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 "位的数!");

    }    

}


0 回复 有任何疑惑可以回复我~

num % 10 != num 改为 num >0

0 回复 有任何疑惑可以回复我~

应改为

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+"位的数!");


}

}



0 回复 有任何疑惑可以回复我~

问题在于

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 +"位数");


0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165462    人
  • 解答问题       17585    个

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

进入课程

这样哪里错了?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信