Теория:
Есть задачи, в которых нужно обрабатывать данные на каждом шаге. Например, написать программу, которая выводила бы на экран таблицу умножения.
Результат программы может быть такой:

Рис. \(1\). Таблица умножения
Для составления такой программы оптимально использовать вложенный цикл (цикл в цикле). Применим такой алгоритм для решения задачи о таблице умножения.

Рис. \(2\). Программа на Pascal

Рис. \(3\). Программа на Python
Вкладывать можно не только циклы for друг в друга, но и цикл for в while и наоборот.
Можно себе представить цикл в цикле как вращение одной шестерёнки внутри другой, причём внутренняя переменная изменяется быстрее.
Как это работает?
Переменная \(i\) принимает значение \(1\), а внутренняя переменная \(j\) принимает не одно значение, а несколько по очереди: от \(1\) до \(10\).
На следующем шаге \(i\) принимает значение \(2\), по тому же алгоритму \(j\) «пробегает» от \(1\) до \(10\) и т. д.
На следующем шаге \(i\) принимает значение \(2\), по тому же алгоритму \(j\) «пробегает» от \(1\) до \(10\) и т. д.
Источники:
Рис. 1. Таблица умножения. © ЯКласс.
Рис. 2. Программа на Pascal. © ЯКласс.
Рис. 3. Программа на Python. © ЯКласс.