continue语句是如何在这里工作的?

时间:2017-05-28 21:58:25

标签: python loops while-loop conditional-statements continue

我理解"继续"使程序跳回循环。

例如:

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

因此,如果我输入除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)

在什么条件下继续声明"跳过"并跳回到循环?它看起来更像是else语句。

3 个答案:

答案 0 :(得分: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)

会产生相同的结果。

答案 1 :(得分:0)

“继续”声明并没有“跳回”'在for循环中,它只是进入下一次迭代。 在示例中,在continue语句之后,我们移动到下一个元素(不均匀的数字)

答案 2 :(得分:0)

我认为令人困惑的是if语句中%运算符的功能:if num % 2 == 0。哪个不要混淆与用于字符串格式的%标记。

num1 % num2产生整数除法运算num1/num2的余数。这通常称为模数操作。

如果数字甚至是40,则40%2等于0:

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

如果数字是奇数,那么17%2等于1

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

因此num%2操作可用于通过检查此操作的结果是否等于0来检测num是偶数还是奇数:

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