什么是“条件递进式编程”?呵呵,这是我自己起的名字。所谓条件递进式编程,就是指需要一系列相关函数组合执行的情况下,后续函数执行的必要性由前面所有函数执行是否成功来决定。比如说,有一系列函数如下DoSomething1、DoSomething2、DoSomething3......DoSomethingN;DoSomething2函数执行的前提是DoSomething1函数必须执行成功,DoSomething3函数执行的前提是DoSomething1和DoSomething2都执行成功,DoSomethingN函数执行的前提是DoSomething1、DoSomething2、DoSomething3......DoSomething(N-1)都执行成功。
你会如何来写这段程序?不假思索,你可能会如下编写:
BOOL DoSomething()
{
if (DoSomething1())
{
if (DoSomething2())
{
if (DoSomething3())
{
// ...
return TRUE;
}
}
}
return FALSE;
}
这种层层嵌套的结构,逻辑上并没有错,但代码的可读性就差了一点。如果系列函数的数量很多(即上述N的值很大),那么整个代码结构的宽度将变得很长,代码的可读性将进一步降低,日后修改代码的时候也很容易出错。
下面,我将给出两种我本人认为很不错的程序结构。这两种程序结构不是我自创的,但我能看到它们智慧的光芒。另外,关于以下两种程序结构,我不想给出过多解释,读者用心慢慢体会吧!
程序结构1:
BOOL DoSomething()
{
BOOL pass = DoSomething1();
if (pass)
{
pass = DoSomething2();
}
if (pass)
{
pass = DoSomething3();
}
if (pass)
{
// ...
}
return pass;
}
程序结构2:
BOOL DoSomething()
{
BOOL pass = FALSE;
do
{
if (!DoSomething1())
{
break;
}
if (!DoSomething2())
{
break;
}
if (!DoSomething3())
{
break;
}
// ...
pass = TRUE;
} while (FALSE);
return pass;
}
分享到:
相关推荐
针对预抽式煤层瓦斯问题,对区域瓦斯治理钻孔进行了设计,提出了一种新型的钻孔施工方案:隔断掩护递进式施工方案,对比分析了2种不同的钻孔设计方案施工效果,通过对比2种施工方案现场施工情况,认为隔断掩护递进式施工...
递进式分配器原理PPT学习教案.pptx
步奏递进式一步步展示相应内容的图片,动态相册ppt模板。
供应商递进式管理与采购成本降低技巧.doc
“三循环递进式”人才培养模式宿舍管理系统的开发实践.docx“三循环递进式”人才培养模式宿舍管理系统的开发实践.docx“三循环递进式”人才培养模式宿舍管理系统的开发实践.docx“三循环递进式”人才培养模式宿舍...
递进式教师教育课程是根据教师专业发展的阶段特点而设置的课程,建设递进式教师教育课程不仅能够实现教师教育的一体化,而且能够增强不同发展阶段课程的针对性,避免教师教育课程资源的重复浪费。职前教师、新手教师、...
递进式两部分地球拼图.pptx,pptfans_e5a2bd3ad027521.pptx
PLC控制系统编程技巧及应用pdf,程序设计是PLC应用系统设计的工作重点,往往也是难点。文章结合三菱PLC的控制实例,介绍了化整为零、层次递进;集零为整、衔接优化的编程技巧及其应用方法。掌握了这种编程技巧,则...
在回采工作面递进式推采过程中,不断融入回采新揭露的煤厚“动态数据”,建立煤厚预测的优化模型,对未采区段开展递进式煤厚预测。选取某矿完成回采的S1工作面,以其“U”巷道控制的306个煤厚点作为已知数据,以回采...
议论文递进式结构典范议论文.ppt
递进式教学在C语言教学中的运用.pdf
C语言程序设计递进式实践教学模式研究.pdf
递进式三部分地球拼图.pptx,pptfans_dc6643f86935790.pptx
大学生物技术专业递进式实践能力培养.docx
电子政务-全电力递进式驱动发动机.zip
自主学习模式下的电子信息类专业递进式专业实践能力训练体系初探-以成都大学电子信息工程学院为例.pdf
递进式项目教学法在C语言教学中的应用.pdf
电动汽车充电站分层递进式选址方法研究.pdf
递进式单案例教学法在Java课程中的应用