问答详情
源自:4-15 编程练习

请问一下这个程序哪里有问题?

public class HelloWorld{

public static void main(String[] args){

int num = 999;

int count = 0;

for(;num>0;num--){

    if( num%1000000000==1){

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

        break;

    }if(num%100000000==1){

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

        break;

    }if(num%10000000==1){

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

        break; 

    }if(num%1000000==1){

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

        break; 

    }if(num%100000==1){

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

        break; 

    }if(num%10000==1){

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

        break;

    }if(num%1000==1){

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

        break;

    }if(num%100==1){

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

        break;  

    }if(num%10==1){

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

        break;   

    }if(num%1==1){

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

        break;    

    }

}









}

}


提问者:qq_慕盖茨3594909 2020-02-20 21:06

个回答

  • qq_宝慕林1230718
    2020-02-27 19:27:31

    public class HelloWorld{public static void main(String[] args){int num = 999;int count = 0;for( ; num!=0;count++ ){    num=num/10;  } System.out.println("它是个3位的数!"); //它是个"+count+"位数!}}


  • PHP小白上线
    2020-02-26 22:02:33

    同样效果的两个程序,代码越简单越少的最好,运行速度会更快

  • 慕设计4420914
    2020-02-26 19:40:46

    你为什么要写这么复杂???

  • 慕斯4552333
    2020-02-21 13:32:56

    我感觉这个循环次数太多了。。。例如999要到901才能判断出是三位数而且一位数是判断不了的

    public class HelloWorld{

    public static void main(String[] args){

    int num = 999;

    int count = 0;

    if(num==0)   //当num为0时手动使用if确定位数

    count=1;

    while(num!=0)

    {

        num/=10;

        count++;

    }

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

    }

    }