2017-05-28 119 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')