JavaScript. Урок № 13 (пирамиды, цикл в цикле)

22 July

Ранее мы изучали с вами циклы. Для облегчения понимания текущей темы предлагаю зайти на урок и бегло пройтись по тексту. Ссылка на этот урок: 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.

В таком случае код будет выглядеть следующим образом: