当前位置: 代码迷 >> Java相关 >> 我的程序哪里错了呀?
  详细解决方案

我的程序哪里错了呀?

热度:102   发布时间:2010-09-08 21:15:13.0
我的程序哪里错了呀?
题目要求公司的业绩06年8万,以125%的速度增长什么时候到20万?
程序代码:


public class Ab {

    /**
     *
@param args
     
*/
    public static void main(String[] args) {
        double first=8;
        double cre=1+25/100;
        int year=2006;
        while(first<=20){
            first=first*cre;
            year++;
            
            
        }
        System.out.println("以25%的增长速度,"+year+"年能达到20万的人数");
        // TODO Auto-generated method stub

    }

}

----------------解决方案--------------------------------------------------------
是25%的速度增长。
----------------解决方案--------------------------------------------------------
程序代码:

public class Ab {

    /**
     *
@param args
     
*/
    public static void main(String[] args) {
        double first=8;
        double cre=1+25*1.0/100;
        int year=2006;
        while(first<=20){
            first=first*cre;
            year++;
            
            
        }
        System.out.println("以25%的增长速度,"+year+"年能达到20万的人数");
        // TODO Auto-generated method stub

    }

}


你的代码错在这句double cre=1+25/100;
这样cre=1
25/100 这样程序会认为是int除以int,那么返回int,得到的0.25会被转成int类型,就得到0了
那么cre=1+0得1
所以程序永远不会跳出循环。
----------------解决方案--------------------------------------------------------
为啥直接写cre=1.25;就对了呢?
这么写就死循环呢?
----------------解决方案--------------------------------------------------------
哦哦 是呀
----------------解决方案--------------------------------------------------------
谢谢版主了
----------------解决方案--------------------------------------------------------
  相关解决方案