java – 使用双精度时if else语句的替代方法
发布时间:2020-12-15 04:42:15 所属栏目:Java 来源:网络整理
导读:根据工资,我需要为员工对象分配一个特定的税率.工资由annualSalary定义,这是一个double,所以我不能使用switch语句.我改为使用if / else: public int getSalaryRank() { if(yearlySalary = 60000.00) { salaryRank = 1; } else if(yearlySalary 60000.00 yea
根据工资,我需要为员工对象分配一个特定的税率.工资由annualSalary定义,这是一个double,所以我不能使用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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 除了包装webservices之外,ESB / BPM能否完全摆脱编
- Spring Security Oauth2.0 实现短信验证码登录示例
- java – Manifest Merger Failed – 访问google maps v2权限
- java – 在终止的代码上使用JUnit
- Nutch-Cygwin如何设置JAVA_HOME
- FtpFileUtil 备忘
- java – Jackson,序列化一个引用的属性
- 通过客户端存根访问WSDL时Java InaccessibleWSDLException
- java – HashSet与JDK 7/8的顺序和区别
- java – 在另一台服务器上调用ColdFusion函数?