想了解输出

时间:2019-06-30 10:27:17

标签: python python-3.x

程序的输出不是我期望的。谁能解释为什么continue语句不直接指向90?

for num in 23, 45, 50, 65, 76, 90:
    if(num%5!=0):
        continue
    if(num%10==0):
        print(num, end=" ")
        continue
    if(num%3==0):
        print(num, end=" ")

输出:

45 50 90 

我认为应该是:

45 50 90 90 

2 个答案:

答案 0 :(得分:2)

似乎您理解continue的意思是“继续执行循环主体的其余部分”。相反,它的意思是“继续循环控制序列中的下一个值”。因此,在“继续”处,循环退出,因为90之后没有任何内容。 (否则,它将直接移至下一个数字,因此90不会再次打印两次。)

答案 1 :(得分:0)

尝试删除continue和前一个if

for num in 23, 45, 50, 65, 76, 90:
    if (num%10==0):
        print(num, end=" ")
    if (num%3==0):
        print(num, end=" ")

输出:

45 50 90 90 

这是行不通的,因为continue跳过了其余代码,并移至循环中的下一个元素,如docs中所述:

  

continue语句(也是从C借用的)继续循环的下一次迭代: