2012-09-20 87 views
-4

你究竟知道它會不會終止?有沒有一個讓它繼續前進的功能?如果我想在一定次數後停止循環,我會怎麼做?如何判斷while循環是否會終止?

+0

'while cnt <10:'竅門 – TJD

+1

@TJD - 你是什麼意思?如果你不在循環內用'cnt'做任何事情,Taht將循環無限次(或者沒有次數)。如果你真的想迭代一定次數,用''xrange'或'range'來'for' ... – mgilson

回答

2

while循環終止

  • 如果它使用的條件是在它被評估的時間假。

    實施例:

    x = 10 
    while x > 5: 
        x -= 7 
        print x 
        x += 6 
        print x 
    

    依次將打印的數字3,9,2,8,1,7,0,6,-1,5,然後才終止。

    x在執行期間變成<= 5,但只有在重新啓動循環時的狀態是相關的。

  • 如果它與break同時左:

    x = 10 
    while x > 5: 
        print x 
        x -= 1 
        break 
    

    只能打印10,因爲它只是在 「強制」 之後。

它運行的一定次數會做

x = 0 
while x < n: 
    do_stuff() 
    x += 1 

或更好地爲一個循環:

for x in range(n): 
    do_stuff() 
+0

你忘記了第三個選項:執行一個return語句。 –

+0

@NoctisSkytower右,或者一個異常,或者一個'sys.exit()'或者'sys._exit()'。 – glglgl

+0

從技術上講,'sys.exit()'引發了一個'SystemExit'異常。 –

9

一般情況下,這是不可能提前知道是否計劃將永遠循環或最終停止。這被稱爲Halting problem。當然,在實踐中,你可以通過查看條件來做出合理的猜測。

只要條件成立,while循環將繼續進行。你不需要一個函數來繼續。

while True: 
    print "hello, world!" 
    #no functions required here! 

如果你想要的東西循環一定的次數,這是最好使用一個for循環:

for i in range(10): 
    print "hello, world!" 
    #prints ten times 

雖然你仍然可以使用while循環,如果你真正想要的。

count = 0 
while count < 10: 
    print "hello, world!" 
    count += 1 
+3

我甚至可能會爲'範圍(10):'明確表示該參數不會被使用,但這只是風格(+1)的問題。很好的答案。 – mgilson