10.2. Вложенные циклы


Цикл называется вложенным, если он размещается внутри другого цикла. На первом проходе, внешний цикл вызывает внутренний, который исполняется до своего завершения, после чего управление передается в тело внешнего цикла. На втором проходе внешний цикл опять вызывает внутренний. И так до тех пор, пока не завершится внешний цикл. Само собой, как внешний, так и внутренний циклы могут быть прерваны командой break.

Пример 10-19. Вложенный цикл

  1. #!/bin/bash
  2. # Вложенные циклы "for".
  3. outer=1             # Счетчик внешнего цикла.
  4. # Начало внешнего цикла.
  5. for a in 1 2 3 4 5
  6. do
  7.   echo "Итерация #$outer внешнего цикла."
  8.   echo "---------------------"
  9.   inner=1           # Сброс счетчика вложенного цикла.
  10.   # Начало вложенного цикла.
  11.   for b in 1 2 3 4 5
  12.   do
  13.     echo "Итерация #$inner вложенного цикла."
  14.     let "inner+=1"  # Увеличить счетчик итераций вложенного цикла.
  15.   done
  16.   # Конец вложенного цикла.
  17.   let "outer+=1"    # Увеличить счетчик итераций внешнего цикла.
  18.   echo              # Пустая строка для отделения итераций внешнего цикла.
  19. done
  20. # Конец внешнего цикла.
  21. exit 0

Демонстрацию вложенных циклов "while" вы найдете в Пример 25-11, а вложение цикла "while" в "until" — в Пример 25-13.