Внутренний цикл
Эта статья нуждается в дополнительных цитатах для проверки . ( сентябрь 2018 г. ) |
В компьютерных программах важной формой потока управления является цикл , который вызывает многократное выполнение блока кода. Распространенной идиомой является наличие цикла, вложенного в другой цикл, при этом содержащийся цикл обычно называется внутренним циклом.
Фон
[ редактировать ]Существуют два основных типа циклов, и они могут быть вложены друг в друга на любую необходимую глубину. Два типа: цикл for и цикл while. [1] Оба немного отличаются, но могут быть взаимозаменяемы. Исследования показали, что производительность полной структуры цикла с внутренним циклом отличается по сравнению с циклом без внутреннего цикла. [2] Действительно, даже производительность двух циклов с разными типами внутреннего цикла, где один — цикл for, а другой — цикл while, различна.
Было замечено, что при использовании внутреннего цикла for в единицу времени выполняется больше вычислений, чем в противном случае. Это означает, что при одинаковом количестве вычислений тот, который имеет внутренний цикл for, завершится быстрее, чем тот, который без него. Это независимый от машины или платформы метод оптимизации цикла , который наблюдался в нескольких протестированных языках программирования и компиляторах или интерпретаторах. Случай цикла while в качестве внутреннего цикла работал плохо, в некоторых случаях работая даже медленнее, чем цикл без внутреннего цикла. В двух приведенных ниже примерах, написанных на Python, представлен цикл while с внутренним циклом for и цикл while без внутреннего цикла. Хотя оба примера имеют одинаковые условия завершения циклов while, первый пример завершится быстрее из-за внутреннего цикла for. Переменная innermax представляет собой часть переменной maxticketno в первом примере. [3]
while ticket_no * innermax < max_ticket_no:
for j in range(0, innermax):
if (ticket_no * innermax + j) == jackpot_no:
return
ticket_no += 1
while ticket_no < max_ticket_no:
if ticket_no == jackpot_no:
return
ticket_no += 1
Ссылки
[ редактировать ]- ^ Гецци, К; Джазайери, М (1996). Концепции языка программирования (3-е изд.) . Джон Уайли и сыновья.
- ^ Адевуми, Тосин (август 2018 г.). «Конструкция программы внутреннего цикла: более быстрый способ выполнения программы» . Открытая информатика . 8 : 115–122. дои : 10.1515/comp-2018-0004 .
- ^ Вишал (09.06.2021). «Вложенные циклы в Python» . PYродной . Проверено 7 сентября 2022 г.