В компьютерных программах важной формой потока управления является цикл , который заставляет блок кода выполняться более одного раза. Распространенная идиома — иметь цикл, вложенный в другой цикл, причем содержащийся цикл обычно называется внутренним циклом.
Существуют два основных типа циклов, и они могут быть вложены друг в друга, возможно, на любую глубину по мере необходимости. Два типа — цикл 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
в то время как ticket_no < max_ticket_no : если ticket_no == jackpot_no : вернуть ticket_no += 1
4. Вложенный цикл for в Python от Techgeekbuz