[英]While with 2 conditions or 1 condition and if check?
我正在為uni做一個小程序,在設計算法時遇到了一個疑問。 該程序使用 Python 編寫,但我對通用的非特定於語言的解決方案感興趣,因為我通常練習 Java 和 C++(盡管我知道每種語言在內部的工作方式略有不同)
問題是是否使用這些循環中的任何一個
while condition 1 and condition 2
(...)
或者改用
while condition 1
(...)
if condition 2
quit loop
感謝您的幫助,感謝所有回復!
[ 編輯 ]
正如你們所有人所說的那樣,代碼在邏輯上並不像我介紹的那樣等效。 但是,這是在我的情況下。 不過,您指出這一點很好,因為在其他情況下,這將是需要考慮的事情。 然而,在這種情況下,條件 2 的值在 (...) 代碼塊的 while 循環中被修改,因此唯一重要的是在循環結束時它是真還是假。
無論如何,感謝您的解釋和那些建議我只使用最清晰的人,現在我已經清楚了:)
這 2 條語句是不等價的。 在條件 2 變為 = False 且條件 1 = True 的情況下,您的第一個循環將在 while 檢查后立即通過,第二個循環將執行循環體,並且僅在此之后退出。 所以,我想選擇取決於該代碼塊的目的。
兩者並不等價。 等價的形式可以是
while cond1
if not cond2
quit loop
<code block>
當 cond1 為真且 cond2 為假時,您建議的 while-if 版本失敗:在這種情況下,它會在退出前執行一次代碼塊。
使用哪個? 使用更易於閱讀和維護的版本。 這通常是兩個條件版本,格式很好,例如
while cond1 and
cond2
<code block>
將運算符 ( and
) 留在行尾有助於讀者了解語句尚未完成。 你的旅費可能會改變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.