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

哪里出错了改不出来啊~~~~

public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
if(num>=0&&num<999999999)
{
    while(num!=0)
    {
        count++;
        num/=num;
    }
    System.out.println("它是个"+count+"位的数!");
}
else
System.out.println("输入错误!");






}
}

提问者:慕村6393778 2016-05-18 11:06

个回答

  • 枫一样
    2016-05-18 11:23:09
    已采纳

    对哦 其实就改num=num/10  想多了我= =

  • 前世有约11
    2016-05-18 11:25:50

    public static void main(String[] args){

    Scanner s=new Scanner(System.in);

    System.out.println("请输入一个数:");

    int num=s.nextInt();

    int count = 0;

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

       while(num!=0){

        num=num/10;

           count++;

       }

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

    }

    else

    System.out.println("输入错误!");


    }


  • SheldonLWhy3355079
    2016-05-18 11:23:04

    num/=num; 改成 num/=10;

  • 前世有约11
    2016-05-18 11:21:28

    public static void main(String[] args){

    int num = 999;

    int count = 0;

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

       while(num!=0){

        num=num/10;

           count++;

       }

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

    }

    else

    System.out.println("输入错误!");


  • 枫一样
    2016-05-18 11:20:51

    当num!=0 这不是陷入无限循环了么? 应该改成下面的.   num/=num 自除也等于1了..是num/=10. 

    再把count = 1 的初始值就行了.

    num/10 !=0   //因为num是int型,自动舍弃非整数的小数点后面的数字.  如13/10 = 1      3 / 10 = 0


  • GodIsACoder
    2016-05-18 11:16:45

    while()括号中的条件值为真时跳出循环,num一开始的赋值就是999,while(num!=0)括号中的条件值为真,while(){}先判断在执行,判断后不会进入循环。