Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_Программирование_1.doc
Скачиваний:
8
Добавлен:
19.11.2019
Размер:
501.25 Кб
Скачать

4.3.Конструкция в конструкции

Управляющая конструкция, как и любая другая инструкция, может быть записана внутри других управляющих конструкций. Более того, внутри внутренней конструкции также могут встречаться другие конструкции. Глубина вложения конструкций ограничивается лишь возможностями программиста – понять программу, содержащую большое число вложений, очень сложно.

Рассмотрим пример программы, которая печатает таблицу умножения. Для нее понадобиться вложенные циклы. Внешний цикл будет печатать по одной все строки. Внутренний цикл будет печатать по одному все столбцы, т.е. печатать одну строку. Код программы приведен на рис. 8.

Рис. 8 Пример программы

В строках с 4 по 8 печатается шапка нашей таблицы. В 6 строке после символа процента указано число 2 и лишь после этого числа указан тип переменной. Таким способом можно установить, сколько цифр будет печататься на экране. Не зависимо от того, сколько реально разрядов в числе, на экране оно займет 2 символа. Это позволит получить в таблице ровные колонки.

В 9 строке записана условная конструкция для внешнего цикла. Что и почему записано в полях инициализации, условия и шага цикла можно разобраться самостоятельно. Обратите внимание, как удобно использовать конструкцию «for» если известно число повторений на момент начала цикла. Мы по порядку указываем, с чего нужно начать, чем закончить и с каким шагом двигаться в цикле. Поэтому иногда такую конструкцию называют циклом с известным числом повторений.

В 11 строке печатается заголовок строки, а в 12 начинается внутренний цикл. Мы опять используем цикл «for», чтобы «пройтись» по 9 столбцам.

Во внутреннем цикле всего одна инструкция, поэтому нет необходимости набирать фигурные скобки для составного оператора. В 13 строке, внутри внутреннего цикла печатается элемент таблицы умножения.

В 14 строке печатается перевод на новую строку. Эта инструкция относится к внешнему циклу.

Для того, чтобы легче было понять, к какой конструкции относится та или иная инструкция, принято выравнивать инструкции. Выравнивание кода принято делать по следующему правилу: инструкции, находящиеся внутри конструкции, сдвигают относительно конструкции на одну позицию вправо. Сдвиг на одну позицию может пониматься по-разному, это либо сдвиг размер табуляции, либо сдвиг на 3-5 символов.

В примере, в 6 строке записана внутренняя инструкция цикла из 5 строки, и она сдвинута относительно его на 1 позицию. Строки с 11 по 14 являются внутренними инструкциями цикла из 9 строке, и также сдвинуты.

В 13 строке находится инструкция внутреннего цикла. Она сдвинута на 1 позицию относительно внутреннего цикла, и на 2 позиции относительно внешнего цикла. Благодаря этому мы легко можем определить, что инструкция из 13 строки находится во внутреннем цикле, а в 14 строке – во внешнем.

Нужно иметь в виду, что компилятор никак не контролирует, в каких позициях находятся инструкции. Поэтому, если мы сдвинем инструкцию в 14 строке на позицию вправо, она все равно будет во внешнем цикле. Выравнивание видно только программисту и должно контролироваться программистом.