有2个条件或1个条件,如果检查?

时间:2017-10-24 19:58:01

标签: python algorithm performance

我正在为uni制作一个小程序,并在设计算法时遇到了疑问。该程序是用Python编写的,但我对一般的非语言特定解决方案感兴趣,因为我通常练习Java和C ++(虽然我知道每种语言在内部都有不同的作用)

问题是是否使用这些循环中的任何一个

while condition 1 and condition 2
    (...)

或者改为使用

while condition 1
    (...)
    if condition 2
        quit loop

感谢您的帮助,所有回复都表示赞赏!

[编辑]

正如大家所说,代码在逻辑上并不像我提出的那样。但是,这是我的情况。你指出它很好,因为在其他情况下,它会被考虑在内。但是,在这种情况下,条件2的值在(...)代码块的while循环中被修改,因此唯一重要的是在循环的最后是真还是假。

无论如何,感谢您的解释以及那些建议我使用最清晰的解释的人,现在已经为我澄清了:)

2 个答案:

答案 0 :(得分:1)

这两个陈述并不相同。在条件2变为= False且条件1 = True的情况下,第一个循环将在while检查后立即传递,第二个循环将执行循环体并且仅在该退出之后。所以,我猜选择取决于代码块的目标。

答案 1 :(得分:0)

两者不等同。等效形式可以是

while cond1
    if not cond2
        quit loop
    <code block>

当cond1为true且cond2为false时,您建议的while-if版本失败:在这种情况下,它会在退出之前执行一次代码块。

使用哪种?使用更易于阅读和维护的版本。这通常是双条件版本,格式很好,例如

while cond1 and
      cond2
   <code block>

将操作员(and)留在行尾,有助于读者知道该语句尚未完成。您的里程可能会有所不同。