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

下面代码哪里出错了?

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

}

}



提问者:恋_舞 2017-04-07 15:40

个回答

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


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

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

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

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