泰安网站建设公司网盘网页版
web/
2025/10/5 18:17:35/
文章来源:
泰安网站建设公司,网盘网页版,短链接转换,免费建立个人网站的哪些平台好重点看一下#xff1a;逻辑与#xff0c;出现多层if嵌套的情况
实际开发中#xff0c;与门应该是最容易也是最应该被优化的。 合并后的条件代码会表述“实际上只有一次条件检查#xff0c;只不过有多个并列条件需要检查#xff0c;从而使这一次检查的用意更清晰。当然逻辑与出现多层if嵌套的情况
实际开发中与门应该是最容易也是最应该被优化的。 合并后的条件代码会表述“实际上只有一次条件检查只不过有多个并列条件需要检查从而使这一次检查的用意更清晰。当然合并前和合并后的代码有着相同的效果但原先代码传达出的信息却是“这里有一些各自独立的条件测试它们只是恰好同时发生”这项重构往往可以为使用【提炼函数】做好准备。将检查条件提炼成一个独立的函数对于厘清代码意义非常有用因为它把描述“做什么”的语句换成了“为什么这样做”。
案例一逻辑或
public int disabilityAmount(Employee anEmployee) {if (anEmployee.seniority 2) {return 0;}if (anEmployee.monthsDisabled 12) {return 0;}if (anEmployee.isPartTime) {return 0; // compute the disability amount}
}这里有一连串的条件检查都指向同样的结果。既然结果相同就应该把这些条件检查合并成一条表达式。对这样顺序执行的条件检查可以用逻辑或运算符合并。
public int disabilityAmount(Employee anEmployee) {if ((anEmployee.seniority 2) || (anEmployee.monthsDisabled 12)) {return 0;}if (anEmployee.isPartTime) {return 0;}return 1;
}然后把下一个条件检查也合并进来
public int disabilityAmount(Employee anEmployee) {if ((anEmployee.seniority 2) || (anEmployee.monthsDisabled 12) || (anEmployee.isPartTime)) {return 0;}return 1;
}合并完成后再对这句条件表达式使用【提炼函数】
public int disabilityAmount(Employee anEmployee) {if (isNotEligableForDisability(anEmployee)) {return 0;}return 1;
}public boolean isNotEligableForDisability(Employee anEmployee) {return ((anEmployee.seniority 2) || (anEmployee.monthsDisabled 12) || (anEmployee.isPartTime));
}案例二逻辑与
例如嵌套if语句的情况
public double disabilityAmount(Employee anEmployee) {if (anEmployee.onVacation) {if (anEmployee.seniority 10) {return 1;}}return 0.5;
}可以用逻辑与运算符将其合并
public double disabilityAmount(Employee anEmployee) {if ((anEmployee.onVacation) (anEmployee.seniority 10)) {return 1;}return 0.5;
}如果原来的条件逻辑混杂这两种情况我也会根据需要组合使用逻辑与和逻辑或运算符。这时代码很可能变得混乱所以我会频繁使用【提炼函数】把代码变得可读。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87501.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!