簡體   English   中英

雖然有 2 個條件或 1 個條件,如果檢查?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM