public static void main(String[] args){
int a=2006
for(double i=8;i<=20;i++){
i=i+i*0.25
a++
System.out.println(i)
}
System.out.print("2006年培养学员8万人,每年增长25%,到"+a+"年培训学员人数将达到20万人。");
}
为啥输出是 10.0 13.75 18.4375 24.296875
而不是10.0 12.5 15.5 19.375
第一次循环的打印语句执行完输出 10.0
接着执行for循环的 i++
,这时i已经是11.0
了
然后执行11+11*0.25
,结果自然是13.75
有哪里看不明白的可以滴我哈
public static void main(String[] args) {
int a = 2006;//定义年份
double ren = 8;//初始人数8w
//由于不确定循环次数,建议使用while死循环,这里我随便设置10次;
for (int i = 1; i < 10; i++) {
if(ren<20){//添加if判断语句:如果人数小于20往下执行,超出20则不执行
ren += (ren * 0.25);//ren=ren*0.25;
a++; //执行一次年份+1;
//输出每次循环结果
System.out.println(a+"年培养学员人数达到"+(int)ren+"万人。");
}
//人数大于20w,则输出年份+人数(这里把double类型的ren变量,强制转化成int整形)
}System.out.println(a+"年培养学员人数达到"+(int)ren+"万人。");
// int a=2006;//定义年份
// double ren=8;//初始人数8w
// while (ren<20){//死循环条件是人数小于20就会一直重复执行下面代码
// ren += (ren * 0.25);//ren=ren*0.25;
// a++; //执行一次年份+1;
// //每次循环都会输出一次结果
// System.out.println(a+"年培养学员人数达到"+ren+"万人。");
// }
// //循环结束后输出结果
// System.out.println(a+"年培养学员人数达到"+ren+"万人。");
}