Задачи на циклы while, for в JavaScript
Практика
Примеры решения задач
Задача
Вывести числа от 1 до 50.
Решение: воспользуемся циклом while:
i=1;while(i<=50){document.write(i+', ');i++}
Можно также воспользоваться и циклом for:
for(i=1;i<=50;i++){document.write(i+', ')}
Задача
Дан массив с элементами [1,2,3,4,5]. Циклом for вывести все эти элементы.
Решение: будем повторять цикл for от 0 до номера последнего элемента массива. Этот номер на 1 меньше количества элементов в массиве, которое можно найти с помощью свойства length таким образом: a.length.
Чтобы цикл прокрутился на 1 меньше длины массива, в условие окончания мы поставим <, а не <=.
К элементам массива обращаться так: a[i]. Переменная i - это счетчик цикла, который будет меняться от 0 до a.length (не включительно). Так последовательно выведем все элементы массива:
a=[1,2,3,4,5];for(i=0;i<a.length;i++){document.write(a[i]+',')}
Задача
Дан массив с элементами [2,3,4,5]. Циклом for найти произведение элементов этого массива.
Решение: для таких задач существует стандартное решение, которое заключается в том, что цикл for перебирает элементы массива и их произведения последовательно записываются в переменную r (нарастающим итогом):
r=1;a=[2,3,4,5];for(i=0;i<a.length;i++){r=r*a[i]}document.write(r)
Как это работает: изначально переменная r имеет значение 1, затем при 1-м проходе цикла в нее записывается ее текущее содержимое (это 1), умноженное на 1-й элемент массива (это 2). Получится, что в r запишется 1*2 и теперь там будет лежать число 2.
При следующем проходе цикла в r запишется текущее значение r, умноженное на 2-й элемент массива (т.е. 2*3=6). И так далее, пока массив не закончится.
Можно переписать строчку r=r*a[i] через *= для краткости:
r=1;a=[2,3,4,5];for(i=0;i<a.length;i++){r*=a[i]}document.write(r)
Задача. Цикл for-in
Дан объект o с ключами 'Минск','Москва','Киев' с элементами 'Беларусь','Россия','Украина'. Циклом for-in вывести строки формата: 'Минск - это Беларусь'.
Решение: Для начала выведем все ключи объекта (это названия городов):
o={'Минск':'Беларусь','Москва':'Россия','Киев':'Украина'};for(var k in o){document.write(k)}
Выведем все значения объекта (это страны):
o={'Минск':'Беларусь','Москва':'Россия','Киев':'Украина'};for(var k in o){document.write(o[k])}
Сформируем строки в формате:
o={'Минск':'Беларусь','Москва':'Россия','Киев':'Украина'};for(var k in o){document.write(k+' - это '+o[k]+'. ')}
Задачи для решения
Циклы while и for
Решить эти задачи сначала циклом while и циклом for.
Вывести числа от 1 до 100.
Вывести числа от 11 до 33.
Вывести четные числа от 0 до 100.
Циклом найти сумму чисел от 1 до 100.
Работа с for для массивов
Дан массив с элементами [1,2,3,4,5]. Циклом for вывести все эти элементы.
Дан массив с элементами [1,2,3,4,5]. Циклом for найти сумму элементов этого массива. Записать ее в переменную r.
Работа с for-in
Дан объект o. Циклом for-in вывести ключи и элементы этого объекта.
obj={green:'зеленый',red:'красный',blue:'голубой'}
Дан объект o с ключами Коля, Вася, Петя с элементами '200','300','400'. Циклом for-in вывести строки в формате: 'Коля - зарплата 200 руб'.
Задачи
Дан массив с элементами 2,5,9,15,0,4. Циклом for и оператора if вывести столбец тех элементов массива, которые больше 3-х, но меньше 10.
Дан массив с числами. Числа могут быть положительны и отрицательны. Найти сумму положительных элементов массива.
Дан массив с элементами 1,2,5,9,4,13,4,10. Циклом for и оператором if проверить, есть ли в массиве элемент со значением 4. Если есть, вывести 'Есть' и выйти из цикла, если нет, ничего не делать.
Дан массив числами: [10,20,30,50,235,3000]. Вывести только те числа, которые начинаются на цифру 1 или 5.
Дан массив с элементами 1,2,3,4,5,6,7,8,9. Циклом for создать строку '-1-2-3-4-5-6-7-8-9-'.
Составить массив дней недели. Циклом for вывести все дни недели, а выходные дни вывести жирным.
Составить массив дней недели. Циклом for вывести все дни недели, а текущий день вывести курсивом. Текущий день должен храниться в переменной d.
Дано число n=888. Делить его на 2 столько раз, пока результат деления не станет меньше 50. Какое число получится? Посчитать количество итераций, необходимых для этого (итерация - это проход цикла), и записать его в переменную n.