《编写高质量代码:改善c程序代码的125个建议》——建议17-1:先处理正常情况,再处理异常情况

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第3章,建议17-1,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议17-1:先处理正常情况,再处理异常情况

我们在编写代码时,首要原则就是要使正常情况的执行代码清晰,确认那些不常发生的异常情况处理代码不会遮掩正常的执行路径。也就是说,我们应该把正常情况的处理放在if 后面,而不要放在else 后面。这样,不仅符合我们平时的逻辑思维习惯,同时这对代码的可读性和性能也很重要。例如,下面的代码是对学生的成绩及格与不及格进行判断:

if(grade>=60) 
{
    /*处理成绩及格的学生*/
}
else if(grade>=30&&grade<60) 
{
    /*处理成绩大于等于30,并且小于60的学生*/
}
else
{
    /*处理成绩30以下的学生*/
}

这样的代码,不仅看起来很符合我们平时的逻辑思维习惯,而且if 语句在做判断时,正常情况一般比异常情况发生的概率更大(否则就应该把异常和正常调过来了),即及格的学生多于不及格的学生。如果把执行概率更大的代码放到后面,也就意味着if 语句将进行多次无谓的比较,如下面的代码所示:

if(grade<30)
{
    /*处理成绩30以下的学生*/
}
else if(grade>=30&&grade<60) 
{
    /*处理成绩大于等于30,并且小于60的学生*/
}
else 
{
    /*处理成绩及格的学生*/
}

因为及格的学生总是多于不及格的学生,所以在上面的代码中,if 语句将进行多次无谓的比较,同时也难以理解。

上一篇:iOS 基于键盘的编程所需技巧


下一篇:OpenCV trackbar 避免使用全局变量