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

求解答,错在那里

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

        }

    }

}


正在回答

2 回答

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)
            }//首先do-while循环的语法错了,应该把while写在外面,并用英文分号结尾
            System.out.println("它是个"+ count+"位的数!");
        } else{
            System.out.println("输入有误!");
        }
    }
}
/*其次 最重要的一点是:int型变量是一个字节的,也就是最大可表示的数是127(最小到-128),因此你的sum会在0-127之间循环往复,永远到不了999999999,所以你的if语句只是保证sum是个小于128的非负数,在do-while循环这边会只作用一次也就是sum等于0的这一次,所以你的错不仅仅是一个语法错误,在变量的定义上也有问题,随之而来的问题就在你的循环或者条件判断上出现了逻辑上的错误,建议定义基本类型变量时,仔细考虑你的目的用途*/


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

不想再做设计的阿碳 提问者

非常感谢!
2016-01-11 回复 有任何疑惑可以回复我~
#2

是王小二呀

汗,(⊙﹏⊙),虽然int型的数最大42亿多,是小于9亿9的,刚巧不巧你这个情况对了, 但是int是4字节的,,,我说错了,不好意思兄弟,
2016-01-11 回复 有任何疑惑可以回复我~
do{
    count++;
    num/=10;
    }
while (num != 0);

你的num/=10分号的位置不对。

while (num != 0)后面少了一个分号。

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

举报

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

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

进入课程

求解答,错在那里

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