我正在编写一个代码,允许用户决定他们想要什么类型的投资(年度,月度或季度),每种投资类型与特定整数相关:即年度= 1,每月= 12,以及季度= 4.然而,当我分配年度值时,我还需要将其与下面的投资等式中的int值相关联,并且完全不知道如何这样做。
.cpgz
答案 0 :(得分:1)
quest
变量是否与您期望的任何字符串匹配,即Annual
,Quarterly
或{{ 1}}。 Monthly
与任何选项匹配,则为quest
变量指定正确的值,即1,4或12。如果答案与任何正确的选择都不匹配,您还可能需要考虑情况。
choice
答案 1 :(得分:0)
我建议使用枚举来定义你想要的int。我将调用枚举计划和int术语:
public enum Plan {
ANNUAL(1),
QUARTERLY(4),
MONTHLY(12);
int term;
Plan(int term) {
this.term = term;
}
};
你会在你的代码中使用它(这取代了int选择):
Plan plan = Plan.valueOf(quest.toUpperCase());
saving = principal * (1 + (rate / plan.term)) * Math.pow(plan.term, years);
我认为你需要不同版本的计算。如果你在枚举中添加了一个方法来启用枚举值,那么枚举方法会很容易地支持这一点。您可以计算出不同的计算实现,并在case语句中定义它们。
double calculateSavings(int principal, double rate, int years) {
switch (this) {
case ANNUAL:
case QUARTERLY:
case MONTHLY:
default:
return principal * (1 + (rate / term)) * Math.pow(term, years);
}
}
如果你走这条路线,你会在你的代码中使用它:
// saving = principal * (1 + (rate / plan.term)) * Math.pow(plan.term, years);
saving = plan.calculateSavings(principal, rate,years);