2016-12-29 30 views
1

Пожалуйста, объясните, пожалуйста, продолжение заявления, я старался изо всех сил разбить его на мое понимание, но все усилия были бесполезны. Вот пример программы, которую я нашел в документах python, и я не могу ее понять.Просьба пояснить заявление о продолжении

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

это просто заставляет код продолжать следующую итерацию цикла. на самом деле не требуется в вашем примере. –

+0

Вы проверили документы Python? Вы найдете в деталях, что 'continue' делает –

+0

https://docs.python.org/2/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops – Prune

ответ

5

continue оператор вызывает Python, чтобы пропустить остаток текущей итерации цикла и переход к началу следующей итерации.

См this documentation page для Python 3. Оригинальный пример на этой странице:

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

Found an even number 2 
Found a number 3 
Found an even number 4 
Found a number 5 
Found an even number 6 
Found a number 7 
Found an even number 8 
Found a number 9 

Когда continue встречается, то print в конце цикла пропускается, и выполнение переходит к for снова, чтобы получить следующая итерация. Обратите внимание, что для четных чисел напечатано «Найдено четное число», но «Найдено номер» - не. Это связано с тем, что continue пропустил остальную часть тела петли.


Ваша модификация образца - вставив else - делает continue устаревшим, потому что print("Found a number", num) не будет выполнена в любом случае (он сидит в else) ветви.

Таким образом, вы обнаружили, что continue (а также break) часто являются альтернативным механизмом управления потоком до if...else. Это зависит от ситуации и предпочтений стиля.

+0

И после перехода на следующую итерацию, возвращает ли python обратно в пропущенную итерацию – Faruq

+0

@Faruq: Нет. Например, в случае 2 вызывается 'continue' и переходит к следующей итерации, которая равна 3 (следующее значение, полученное' range'). Он больше никогда не вернется к 2. –

+0

О, я думаю, я понял это сейчас. Извините за вопросы, я просто 13 – Faruq

 Смежные вопросы

  • Нет связанных вопросов^_^