下面代码哪里出错了?

来源:4-15 编程练习

恋_舞

2017-04-07 15:40

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回答

  • ziom
    2017-04-07 15:48: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("输入错误!");
        }
    }
    }


    恋_舞

    非常感谢!

    2017-04-07 16:14:19

    共 1 条回复 >

  • 慕盖茨8084172
    2017-04-13 14:19:22

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

  • 我请你喝汽水吧
    2017-04-07 15:50:20

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

    恋_舞

    用while的话,那i=10或者10^n,输出结果都是0位,是不是只能用do{}while();呢

    2017-04-07 16:01:25

    共 2 条回复 >

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

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

1165523 学习 · 17586 问题

查看课程

相似问题