2017-05-28 37 views
-1

我知道「繼續」會讓程序跳回循環。繼續聲明是如何在這裏工作的?

這裏有個例子:

while True: 
    print('Who are you?') 
    name = input() 
    if name != 'Joe': 
     continue 
    print('Hello, Joe') 

所以,如果我鍵入比喬其他任何名稱,continue語句跳過它,並跳回循環,因爲條件"if"是真實的,但如果它是假的,程序繼續到最後一行print('Hello, Joe')

然而在這裏這個代碼,我不明白continue語句是如何工作的:

for num in range(2, 10): 
    if num % 2 == 0: 
     print("Found an even number", num) 
     continue 
    print("Found a number", num) 

在什麼情況下continue語句「跳過」並跳回循環?它似乎更像是else語句。

+1

你說得對,它有點像'else'。至於「什麼條件」,它在代碼中給出:'if num%2 == 0'。如果數字是偶數,則最終的打印語句不會執行。 –

回答

0

continue語句不會在for循環中「跳回」,它只是進入下一次迭代。 在這個例子中,continue語句後,我們進入下一個元素(奇數)

1

要回答你的問題

在什麼條件下continue語句「跳過」,並跳回循環?

if條件查找偶數。如果數字是偶數,那麼,如您所說,它將打印"Found an even number",並在for循環中繼續。

你因此也正確的代碼編寫:

for num in range(2, 10): 
    if num % 2 == 0: 
     print("Found an even number", num) 
    else: 
     print("Found a number", num) 

會產生相同的結果。

0

我覺得是混淆你是%操作的if語句的功能:if num % 2 == 0。不應將與用於字符串格式設置的%標記混淆。

num1 % num2產生整數除法運算的其餘部分num1/num2。這通常稱爲操作。

如果數量是偶數像40然後40%2等於0:

>>> foo = 40 
>>> print(foo%2) 
0 

如果該數量是奇數像17然後17%2等於1

>>> foo = 17 
>>> print(foo%2) 
1 

因此num%2操作可可用於檢測的num是偶數還是奇數通過檢查此操作的結果是等於0或不爲:

if num%2 == 0: 
print('the number is even')