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

4-15 编程练习

这个判断怎么错了?(4-15 编程练习)

/*

    if(num==0){

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

    }else{

        for(int i = 1;num/i!=0;i=i*10){

            count++;

        }

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

    }*/


正在回答

6 回答

你把num为0的时候给单独出来了。而且显示输出它是1位数。

问题就是0是1位数呢?还是0位数呢?

而慕课网num为0显示输出的是0位数。http://img1.sycdn.imooc.com//581069d90001bb2804300760.jpg

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

每次用上一次的结果除以10,而不是第一次除以10,第二次除以100,第三次除以1000,你的i=i*10这么写的是不对的,这样每次除的i会越来越大,每循环一次i的值增加十倍,不能使得每循环一次原数除以10

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

抱歉,说错了,你写的是对的,我当做每次num会被重新赋值了。

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

你弄个用户自己输入,Scanner。。。当输入-1时你就知道了,应该就是你的for循环区间大小有问题

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

每次用上一次的结果除以10,而不是第一次除以10,第二次除以100,第三次除以1000,你的i=i*10这么写的是不对的,这样每次除的i会越来越大,每循环一次i的值增加十倍,不能使得每循环一次原数除以10

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

并没有错

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

举报

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

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

进入课程

4-15 编程练习

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