我正在为以下问题编写代码。
在一所大学,全日制学生的学费为每年 6000 美元。已宣布未来五年学费每年增加百分之二。设计一个带有循环的程序,显示未来五年的预计学费金额。
您的计划应包括以下内容:
模块主。将一年的学费分配给一个变量。 调用 calcTuition,通过起始学费。
模块计算教学。接受起始学费并计算/显示每五年的学费。
预期产出 您的结果应类似于以下内容:
第一年的学费是6000.0
第二年学费为6120.0
第3年的学费是6242.4
第4年的学费是6367.248
第5年的学费是6494.59296
这是我当前的代码
public class Tuition {
static final double increaseAmount = 0.02;
public static void main(String[] args) {
Integer schoolYear = 1;
for(schoolYear = 1;schoolYear <=5; schoolYear = schoolYear +1){
calcTuition(schoolYear);
}
}
public static void calcTuition(Integer schoolYear){
double increase;
double tuition = 6000;
increase = tuition + (tuition * increaseAmount);
System.out.println("The tuition in year " + schoolYear + " is " + increase + ".");
} }
对于产出,我只得到第一次增加,并且每年都不会增加。
根据【作业】说明,在你的问题中,方法
main
只需要声明一个变量并为其赋值,即6000,即初始学费,然后调用方法calcTuition
,传递该变量。换句话说,方法main
的主体需要是:
double initial = 6000;
calcTuition(initial);
同样根据说明,需要在方法
calcTuition
中执行循环。
这是我的版本:
(我不知道你已经学到了什么,所以下面的代码可能包含你还没有学到的东西。请参阅代码后面的注释。)
public class Tuition {
static final double increaseAmount = 0.02;
public static void main(String[] args) {
double initial = 6000;
calcTuition(initial);
}
public static void calcTuition(double initial) {
double increase;
double tuition = initial;
int year = 1;
do {
System.out.printf("The tuition in year %d is %f%n", year, tuition);
increase = tuition * increaseAmount;
tuition += increase;
year++;
} while (year <= 5);
}
}
calcTuition
包含一个do-while循环。tuition
被初始化为方法参数的值。tuition
的当前值增加百分之二,即变量increaseAmount
的值。这是我运行上述代码时的输出:
The tuition in year 1 is 6000.000000
The tuition in year 2 is 6120.000000
The tuition in year 3 is 6242.400000
The tuition in year 4 is 6367.248000
The tuition in year 5 is 6494.592960