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

这样不对吗

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

正在回答

6 回答

上面回答的人都没做测试吧,我把程序运行了一遍没发现哪里有问题,运行结果也是3位。

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

十字路口向左向右 提问者

知己啊
2016-09-07 回复 有任何疑惑可以回复我~

      这样表达也对, INT的无符号位存储范围在0~2^32-1,999999999在这个范围内

·


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

do while 是先进行一次然后再判断

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

你这样貌似是四位数

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

应该把中间循环部分改成

while(num!=0){

count++;

       num/=10;

  }


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

十字路口向左向右 提问者

这只是一种方法 ,我的也没错啊,因为有if限制 这个数必定是一位数到六位数之间的,我先让count自加一次,因为这个数最少是一位数,然后num/10,如果是一位数那么得出的值就是0,不符合while条件,自然退出循环,如果是两位数到这步也变成一位数了,再走一遍do,到while也就退出了,count也没错啊
2016-09-07 回复 有任何疑惑可以回复我~

999999999已经超过int 类型最大数值,数值溢出

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

举报

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

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

进入课程

这样不对吗

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