Бесконечный цикл по ошибке.

Особое внимание уделите изменению значения управляющей переменной. Неправильно составленное условие может привести к бесконечному циклу. Рассмотрим пример зацикливания программы:
k = 10
while k > 5:
print(k)
k = k + 1
Здесь цикл будет выполняться, пока k больше 5. Изначально k у нас больше 5, далее значение k только увеличивается, поэтому мы получим бесконечный цикл - программа будет бесконечно увеличивать значение k и выводить его:
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
Прервать выполнение зацикленной программы можно с помощью комбинации клавиш Ctrl + С:
Traceback (most recent call last):
File "E:/Python39/loop.py", line 3, in <nodule>
print(k)
File "E:\Python39\lib\idlelib\PyShell.py", line 1344,
in write
return self.shell.write(s, self.tags)
Keyboardinterrupt
>>>
Как исправить бесконечный цикл. Здесь нужно или редактировать условие или же процесс изменения значения управляющей переменной. Например, можно сделать декремент управляющей переменной:
k = k – 1
Тогда программа выведет 5 чисел и завершит свою работу:
10
9
8
7
6
Если разложить наш цикл на итерации, то получится табличка, приведенная ниже.
Итерации цикла
Номер итерации Значениеk Проверка условия Действия
1 10 true print (k) # 10 k = k - 1 # 9
9 2 9 true print(k) # k = k - 1 # 8
3 8 true print(k) # 8 k = k - 1 # 7
4 7 true print (k) # 7 k = k - 1 # 6
5 6 true print(k) # 6 k = k - 1 # 5
6 5 false –
Можно было бы изменить и условие, например:
k = 10
while k < 15:
print (k)
k = k + 1
Тогда программа выведет:
10
11
12
13
14
Типичная ошибка новичков - многие вообще забывают изменять переменную в цикле. Например:
# Внимание! Код содержит ошибку!
k = 1
while k <= 10:
print (k)
Очевидно, программист хотел, чтобы программа отобразила числа от 1 до 10, но забыл изменить значение k в теле цикла. Следовательно, программа будет выполняться бесконечно.
Подытожим. Чтобы не получить бесконечный цикл, необходимо:
1. Следить за начальным значением управляющей переменной
2. Проанализировать условие выхода из цикла
3. Следить за процессом изменения значения управляющей переменной: ей должны присваиваться такие значения, которые рано или поздно приведут к выходу из цикла

Комментарии

Комментариев нет.