Questions tagged «control-flow»

30
如何摆脱多重循环?
给出以下代码(不起作用): while True: #snip: print out current state while True: ok = get_input("Is this ok? (y/n)") if ok.lower() == "y": break 2 #this doesn't work :( if ok.lower() == "n": break #do more processing with menus and stuff 有没有办法使这项工作?还是我要进行一次检查以打破输入循环,然后再进行另一项限制较大的检查(如果用户满意的话)在外部循环中一起分解?

30
如何避免“如果”连锁?
假设我有这个伪代码: 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; …

8
斯威夫特:守卫让vs如果让
我一直在阅读有关Swift中的Optionals的信息,并且看到了一些示例,这些示例if let用于检查Optional是否持有值,并且在有情况的情况下–使用未包装的值进行操作。 但是,我已经看到在Swift 2.0中,该关键字guard let被广泛使用。我想知道是否if let已从Swift 2.0中删除或是否仍然可以使用它。 我应该改变我的计划包含if let到guard let?

13
如何退出if子句
有哪些方法可以过早退出if子句? 有时候,我在编写代码时希望将一条break语句放在一个if子句中,只是要记住,这些语句只能用于循环。 让我们以以下代码为例: if some_condition: ... if condition_a: # do something # and then exit the outer if block ... if condition_b: # do something # and then exit the outer if block # more code here 我可以想到一种方法:假设退出情况发生在嵌套的if语句内,请将其余代码包装在一个大else块中。例: if some_condition: ... if condition_a: # do something # and then exit …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.