stringtranslate.com

Внутренний контур

В компьютерных программах важной формой потока управления является цикл , который заставляет блок кода выполняться более одного раза. Распространенная идиома — иметь цикл, вложенный в другой цикл, причем содержащийся цикл обычно называется внутренним циклом.

Фон

Существуют два основных типа циклов, и они могут быть вложены друг в друга, возможно, на любую глубину по мере необходимости. Два типа — цикл 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

Ссылки

  1. ^ Ghezzi, C; Jazayeri, M (1996). Концепции языка программирования (3-е изд.) . John Wiley & Sons.
  2. ^ Adewumi, Tosin (август 2018). «Конструкция программы внутреннего цикла: более быстрый способ выполнения программы». Open Computer Science . 8 : 115–122. doi : 10.1515/comp-2018-0004 .
  3. ^ Вишал (2021-06-09). "Вложенные циклы в Python". PYnative . Получено 2022-09-07 .

4. Вложенный цикл for в Python от Techgeekbuz