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

来源:4-15 编程练习

In丶Mooc

2016-12-27 15:18

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回答

  • 慕粉简简单单
    2016-12-27 15:47:20
    已采纳

    你打印的内容在循环体内,所以会打印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++;

    }


  • 慕粉1657433680
    2016-12-27 16:21:44

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

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

  • loonslo
    2016-12-27 15:29:20

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

    不会走else里面的内容

Java入门第一季(IDEA工具)升级版

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

1165172 学习 · 17581 问题

查看课程

相似问题