【问题标题】:How did the continue statement worked here?continue 语句在这里是如何工作的?
【发布时间】:2017-05-28 21:58:25
【问题描述】:

我了解“继续”会使程序跳回循环。

这里举例:

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)

continue 语句在什么条件下“跳过”并跳回循环?看起来它的行为更像 else 语句。

【问题讨论】:

  • 你说得对,它有点像else。至于“什么条件”,代码中给出了:if num % 2 == 0。如果是偶数,则不执行最后的打印语句。

标签: python loops while-loop conditional-statements 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)

会产生相同的结果。

【讨论】:

    【解决方案2】:

    continue 语句不会在 for 循环中“跳回”,它只是进入下一次迭代。 在示例中,在 continue 语句之后,我们移动到下一个元素(不偶数)

    【讨论】:

      【解决方案3】:

      我认为让你感到困惑的是 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 操作可用于通过检查此操作的结果是否等于 0 来检测 num 是偶数还是奇数,如下所示:

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

      【讨论】:

        猜你喜欢
        • 2017-02-10
        • 2016-01-14
        • 1970-01-01
        • 1970-01-01
        • 2016-07-15
        • 1970-01-01
        • 2012-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多