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

下面代码哪里出错了?

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;

for(;num%10 !=0;){

num=num/10;

      count++;

   for(;num%10 !=0; ){

    num=num/10;

      count++;

       for(;num%10 !=0; ){

        num=num/10;

      count++;    

   }

   }

}

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

}

}



正在回答

3 回答

这种写法也可以,没有错,是慕课网的问题,这毕竟不是真实的开发环境,只是慕课网模拟出来教学用的,如果你写的跟他预设的答案有出路,可能就没法提交通过。可以选择跳过这节,或者试试下面这种写法:

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


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

恋_舞 提问者

非常感谢!
2017-04-07 回复 有任何疑惑可以回复我~

这个方法只能用于不含0的数字,没有通用性,因为是用余数判断,含0的话余数为0直接判断结束,0在倒数第几位最后结果输出就是位数-1,而且不用for这么多次,一次就够了,题主可以测试一下。

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

eclipse运行没错,不过一般都用while

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

恋_舞 提问者

用while的话,那i=10或者10^n,输出结果都是0位,是不是只能用do{}while();呢
2017-04-07 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

下面代码哪里出错了?

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