Ранее мы изучали с вами циклы. Для облегчения понимания текущей темы предлагаю зайти на урок и бегло пройтись по тексту. Ссылка на этот урок: https://zen.me/1ePRxh
Друзья, это очень важный материал. В будущем вам придется очень часто использовать цикл в цикле для того чтобы создавать новые, или менять текущие массивы объектов из других объектов. Для этого как нельзя к стати подходит данный контент.
Циклы, работу с которыми вы уже знаете, можно вкладывать друг в друга. К примеру, давайте решим следующую задачу: выведем на экран строку '111222333444555666777888999'.
Тут одним циклом не обойтись - нужно запустить два вложенных друг в друга цикла: первый цикл будет перебирать числа (сначала 1, потом 2, потом 3 и так до 9), а второй цикл будет повторять эти числа 3 раза.
Пирамидки
Давайте сделаем строку, заполненную десятью иксами 'x'.
Для этого сделаем переменную str и при каждом проходе цикла будем добавлять в нее одну букву 'x'. Сначала в str будет ‘ ', потом 'x', потом 'xx' и так далее пока цикл не закончится.
После цикла мы получим нужную нам строку:
Это как суммирование массива только не числе а строк
Давайте теперь выведем на экран следующую пирамидку:
Для этого просто модифицируем предыдущую задачу: при каждом проходе цикла будем выводить на экран содержимое str и <br>.
Столб с цифрами
Давайте выведем на экран следующую столб:
Похожую задачу мы уже решали, когда выводили строку '111222333444555666777888999'. По сути нам нужна такая же строка, но с <br> в нужных местах. Запускаем два вложенных друг друга цикла:
Пирамида с цифрами
Теперь выведем пирамидку с цифрами.
Задача аналогична предыдущей, только внутренний цикл должен крутиться не 3 раза, а в соответствии с числом: если у нас единица - то повторяем цикл 1 раз, если двойка - два раза, если тройка - три раза.
Как этого достичь: нужно в условии внутреннего цикла написать следующее: j <= i. В этом случае если i равен 1, то это все равно, что в условии написать j <= 1, а если i равен 2 - то j <= 2 и так далее.
Цикл будет выглядеть следующим образом:
Задача
1. Нарисуйте пирамиду, как показано на рисунке, только у вашей пирамиды должно быть 20 рядов, а не 5:
x
xx
xxx
xxxx
xxxxx
2. С помощью двух вложенных циклов нарисуйте следующую пирамидку:
1
22
333
4444
55555
666666
7777777
88888888
999999999
3.Нарисуйте пирамиду, как показано на рисунке, воспользовавшись циклом for:
xx
xxxx
xxxxxx
xxxxxxxx
xxxxxxxxxx
While без заданного количества итераций
Бывают задачи, в которых количество итераций цикла не известно заранее. К примеру: дано число, нужно делить его на 2 столько раз, пока результат не станет меньше 10. Нужно вывести число, которое при этом получится.
В этом случае мы не знаем количество итераций. Не беда - сделаем условием цикла условие пока число больше 10.
В таком случае код будет выглядеть следующим образом: