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

我的 for 循环错哪了,我为什么写了个这么样子的代码?

public class HelloWorld{

    public static void main(String[] args){

        int num = 999;

        for (int count = 1;count < 10;count++){

            if (num >= 0 && num <999999999){

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

            }else{

                System.out.println("输入一个小于999999999的数,亲!");

            }

        }









    }

}


正在回答

3 回答

你打印的内容在循环体内,所以会打印10次,而且count你是定义的循环条件,这样你count值和num没有关系你看是不是想要这样的效果

public class HelloWorld {

public static void main(String[] args) {

     int num = 999;

     int count=1;//两位数要执行一次,所有这里赋值1

     while (num/10 !=0) {

            count++;

            num/=10;

    }

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

    }

}

另外for循环和while循环各有特点,;要用for循环的话,条件可以这样写

for(int s=num;s/10!=0;s/=10){

count++;

}


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

你这个count的目的不是算位数吗,但是你给他放在循环了 他就只能是相当于i的作用,就是循环使的

你应该利用除10,利用位数的改变来计算count的值 ,推荐你java入门第一季,视频练习题有你的问题解决方法,当你的num=999,除10 ,除到0.999的时候 int值默认这个数是1,你吧这个当做循环的话,他才有可能计算位数啊

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

你的循环判断逻辑有问题,

不会走else里面的内容

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

举报

0/150
提交
取消

我的 for 循环错哪了,我为什么写了个这么样子的代码?

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