我正在为uni制作一个小程序,并在设计算法时遇到了疑问。该程序是用Python编写的,但我对一般的非语言特定解决方案感兴趣,因为我通常练习Java和C ++(虽然我知道每种语言在内部都有不同的作用)
问题是是否使用这些循环中的任何一个
while condition 1 and condition 2
(...)
或者改为使用
while condition 1
(...)
if condition 2
quit loop
感谢您的帮助,所有回复都表示赞赏!
[编辑]
正如大家所说,代码在逻辑上并不像我提出的那样。但是,这是我的情况。你指出它很好,因为在其他情况下,它会被考虑在内。但是,在这种情况下,条件2的值在(...)代码块的while循环中被修改,因此唯一重要的是在循环的最后是真还是假。
无论如何,感谢您的解释以及那些建议我使用最清晰的解释的人,现在已经为我澄清了:)
答案 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
)留在行尾,有助于读者知道该语句尚未完成。您的里程可能会有所不同。