Хелпикс

Главная

Контакты

Случайная статья





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



Возникают ситуации, когда один и тот же набор повторяющихся действий необходимо выполнить больше одного раза. Например, мы уже сталкивались с задачами, когда программа должна считывать пользовательские данные до сигнала остановки и что-нибудь с ними делать. А теперь представьте если в решении потребуются действия, которые тоже требуют цикла (например, вычислить факториал). Тогда нам понадобится цикл внутри другого цикла.

Если вы пишите программу, в которой используются вложенные циклы, необходимо внимательно следить за отступами. Если бы в примере выше в 6 строке было на один отступ больше, программа вела бы себя совершенно иначе. Внешний цикл (в данном случае while ) выполнился дважды и на третьей итерации, получив сигнал остановки, завершился. Вложенный цикл forначал выполнение два раза внутри цикла while и совершил сначала 2 итерации для number равному 3, а затем 4 итерации для number равному 5.

 

Количество уровней вложенности технически не ограничено, как и в ветвлении. Однако на практике вы редко встретите даже третий уровень вложенности, не говоря уже о большем.

Обратите внимание, что если у вас в программе работают несколько циклов for, то если вам нужен одновременный доступ к итераторам каждого из них, то необходимо давать им разные имена (в примере выше: i, j, k ), иначе во время выполнения следующего цикла значение итератора будет перезаписано.

 

Стоит отдельно упомянуть работу операторов break и continue для вложенных циклов. Они срабатывают только на один цикл на уровне вложенности которого они записаны.

Оператор continue на примере выше работает на внешний цикл, а break на вложенный.

Домашнее задание:

1) Пользователь вводит два натуральных числа nи m. Напишите программу, которая выведет таблицу умножения для всех чисел от nдо mвключительно в следующем формате:

(примеры в одной строке разделены табуляциями)

2) Напишите программу, которая выведет на экран фигуру, заданную пользователем. Пользователь вводит число n – количество строк, из которых состоит фигура, а затем nраз вводит сначала символ, из которого состоит строка и число m – кол-во символов в текущей строке.

Пример:

3) Пользователь вводит имена своих друзей. До тех пор, пока пользователь не введёт пустую строку, для каждого введённого пользователем имени выведите на экран число, состоящее из порядковых номеров букв в слове записанных слитно. Например, для слова «Привет» нужно вывести 123456, а для слова «Васильевич» число получится 12345678910

4) Напишите программу для компании грузоперевозок. На вход подаются следующие данные:
n–число доступных дорог
затем nблоков с числами
m–число последовательных тоннелей на данной дороге
затем mчисел – высот тоннелей
Вычислите наибольшую высоту прицепа, который может проехать по данным дорогам и по какой дороге необходимо будет ехать.

 

Пример:
Ввод:
2
3
30
32
34
2
25
45

Вывод:
1 30

Примечание:
По первой дороге три тоннеля: 30, 32 и 34 метра. Прицеп выше 30 метров не проедет по всех дороге.
Для второй дороги прицеп может тоннели: 25, 45. Прицеп выше 25 не проедет.
Итого среди двух высот в 30 и 25 максимальной окажется 30. Ответ: 1 дорога, 30 метров.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.