相关疑难解决方法(0)

如何避免"如果"链?

假设我有这个伪代码:

bool conditionA = executeStepA();
if (conditionA){
    bool conditionB = executeStepB();
    if (conditionB){
        bool conditionC = executeStepC();
        if (conditionC){
            ...
        }
    }
}

executeThisFunctionInAnyCase();
Run Code Online (Sandbox Code Playgroud)

executeStepX当且仅当前一个成功时才应执行函数.无论如何,executeThisFunctionInAnyCase应该在最后调用该函数.我是编程的新手,对于这个非常基本的问题感到抱歉:有没有办法(例如在C/C++中)避免长if链产生那种"代码金字塔",代价是代码易读性?

我知道如果我们可以跳过executeThisFunctionInAnyCase函数调用,代码可以简化为:

bool conditionA = executeStepA();
if (!conditionA) return;
bool conditionB = executeStepB();
if (!conditionB) return;
bool conditionC = executeStepC();
if (!conditionC) return;
Run Code Online (Sandbox Code Playgroud)

但约束是executeThisFunctionInAnyCase函数调用.该break声明是否可以某种方式使用?

c c++ if-statement control-flow

262
推荐指数
25
解决办法
4万
查看次数

您是否更喜欢使用del或重新分配给None(垃圾收集)

考虑以下代码:

if value and self.fps_display is None:
    self.fps_display = clock.ClockDisplay()
elif not value and self.fps_display is not None:
    self.fps_display.unschedule()
    # Do this
    del self.fps_display
    # or this
    self.fps_display = None
    # or leave both in ?
Run Code Online (Sandbox Code Playgroud)

哪个更好的python清理?

python

23
推荐指数
3
解决办法
6082
查看次数

标签 统计

c ×1

c++ ×1

control-flow ×1

if-statement ×1

python ×1