假设我有这个伪代码:
bool conditionA = executeStepA();
if (conditionA){
bool conditionB = executeStepB();
if (conditionB){
bool conditionC = executeStepC();
if (conditionC){
...
}
}
}
executeThisFunctionInAnyCase();
功能executeStepX
当且仅当前一个成功时才应执行。
无论如何,executeThisFunctionInAnyCase
函数应该在最后调用。
我是编程新手,对于这个非常基本的问题感到抱歉:有没有办法(例如在 C/C++ 中)避免那么长的时间if
产生那种“代码金字塔”的链,以牺牲代码的易读性为代价?
我知道如果我们可以跳过executeThisFunctionInAnyCase
函数调用,代码可以简化为:
bool conditionA = executeStepA();
if (!conditionA) return;
bool conditionB = executeStepB();
if (!conditionB) return;
bool conditionC = executeStepC();
if (!conditionC) return;
但约束条件是executeThisFunctionInAnyCase
函数调用。
可以吗break
语句以某种方式使用?
您可以使用&&
(逻辑与):
if (executeStepA() && executeStepB() && executeStepC()){
...
}
executeThisFunctionInAnyCase();
这将满足您的两个要求:
-
executeStep<X>()
仅当前一个成功时才应评估(这称为短路评估)
-
executeThisFunctionInAnyCase()
无论如何都会被执行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)