根据工资,我需要为员工对象分配特定的税率。薪水是由AnnualSalary定义的,它是两倍,所以我不能使用switch语句。我改用if / else:
public int getSalaryRank() {
if(yearlySalary <= 60000.00) {
salaryRank = 1;
} else if(yearlySalary > 60000.00 && yearlySalary <= 80000.00) {
salaryRank = 2;
} else if(yearlySalary > 80000.00 && yearlySalary <= 100000.00) {
salaryRank = 3;
} else if(yearlySalary > 100000.00 && yearlySalary <= 125000.00) {
salaryRank = 4;
} else {
salaryRank = 5;
} return salaryRank; }
稍后将基于等级分配税率。有没有更好的方法来写这个?
您可以像这样简化它:
public int getSalaryRank() {
int salaryRank;
if(yearlySalary <= 60000.00) {
return 1;
}
if(yearlySalary <= 80000.00) {
return 2;
}
if(yearlySalary <= 100000.00) {
return 3;
}
if(yearlySalary <= 125000.00) {
return 4;
}
return 5
}
左侧的所有检查都是不必要的,因为语句是按顺序执行的。此外,您可以删除else语句并直接返回salaryrank
。同样,在处理货币时,千万不要使用浮点数。使用BigDecimal
替代
编辑:考虑到@AlexWien对多个出口点的评论,这可能是一个更好的解决方案:
public int getSalaryRank() {
if(yearlySalary <= 60000.00) {
salaryRank = 1;
} else if(yearlySalary <= 80000.00) {
salaryRank = 2;
} else if(yearlySalary <= 100000.00) {
salaryRank = 3;
} else if(yearlySalary <= 125000.00) {
salaryRank = 4;
} else {
salaryRank = 5;
}
return salaryRank;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句