Практическое занятие № 31
Работа с циклами for и while в JavaScript
Задача
Задача. Выведите столбец чисел от 1 до 50.
Решение: воспользуемся циклом while (отделим числа тегом br друг от друга, чтобы получить столбец, а не строку):
var i = 1;
while (i 50){
document.write (i+ '
');
i++;
}
Можно также воспользоваться и циклом for:
for (var i = 1; i 50; i++) { document.write(i + '
');
}
Задача
Задача. Дан массив с элементами [1,2,3,4,5]. С помощью цикла for выведите все эти элементы на экран.
Решение: будем повторять цикл for от 0 до номера последнего элемента массива. Этот номер на единицу меньше количества элементов в массиве, которое можно найти с помощью свойства length таким образом: arr.length.
Чтобы цикл прокрутился на единицу меньше длины массива, в условие окончания мы поставим , а не .
К элементам массива будем обращаться так: arr[i]. При этом переменная i- это счетчик цикла, который будет меняться от нуля до arr.length (не включительно). Таким образом мы последовательно выведем все элементы массива на экран(отделив их тегом br друг от друга):
var arr = [1, 2, 3, 4, 5];
for (var i = 0; i arr.length; i++) {
document. write (arr [i] + '
');
}
Задача
Задача. Дан массив с элементами [2,3,4,5].С помощью цикла for найдите произведение элементов этого массива.
Решение: для таких задач существует стандартное решение, которое заключается в том, что циклом for перебираются элементы массива и их произведение
последовательно записывается в переменную result (в ней постепенно накапливается искомое произведение):
var result = 1;
var arr = [2, 3, 4, 5];
for (var i = 0; i arr.length; i++) {
result = result * arr [i];
}
alert (result);
Как это работает: изначально переменная result имеет значение1, затем при первом проходе цикла в нее записывается ее текущее содержимое (это 1), умноженное на первый элемент массива (это 2). Получится, что в result запишется 1*2 и теперь там будет лежать число 2.
При следующем проходе цикла в result запишется текущее значение result, умноженное на второй элемент массива (то есть 2*3=6). И так далее пока массив не закончится.
Можно переписать строчку result = result * arr[i] через *= для краткости:
var result = 1;
var arr = [2, 3, 4, 5];
for (var i = 0; i arr.length; i++) {
result *= arr[i];
}
alert(result);
Задачи для решения
Циклы while и for (решить 2 задачи из предложенных)
Решите эти задачи через цикл while, for.
1. Выведите столбец чисел от 1 до 100. 2. Выведите столбец чисел от 11 до 33.
3. Выведите столбец четных чисел в промежутке от 0 до 100.
4. С помощью цикла найдите сумму чисел от 1 до 100.
Работа с for для массивов
5. Дан массив с элементами [1,2,3,4,5]. С помощью цикла for выведите все эти элементы на экран.
6. Дан массив с элементами [1,2,3,4,5]. С помощью цикла for найдите сумму элементов этого массива. Запишите ее в переменную result.
Задачи (решить 5 задач из предложенных)
9. Дан массив с элементами 2,5,9,15,0,4. С помощью цикла for и оператора if выведите на экран столбец тех элементов массива, которые больше 3-х, но меньше 10.
10. Дан массив с числами. Числа могут быть положительными и отрицательными. Найдите сумму положительных элементов массива.
11. Дан массив с элементами 1,2,5,9,4,13,4,10. С помощью цикла for и оператора if проверьте есть ли в массиве элемент со значением, равным 4. Если есть - выведите на экран 'Есть!' и выйдите из цикла. Если нет – ничего делать не надо.
12. Дан массив числами, например: [10, 20, 30, 50, 235, 3000]. Выведите на экран только те числа из массива, которые начинаются на цифру 1, 2 или 5.
13. Дан массив с элементами 1, 2, 3, 4, 5, 6, 7, 8, 9.С помощью цикла for создайте строку'- 1-2-3-4-5-6-7-8-9-'.
14. Составьте массив дней недели. С помощью цикла for выведите все дни недели, а выходные дни выведите жирным.
15. Составьте массив дней недели. С помощью цикла for выведите все дни недели, а текущий день выведите курсивом. Текущий день должен храниться в переменной day.
16. Дано число n=1000. Делите его на 2 столько раз, пока результат деления не станет меньше50. Какое число получится? Посчитайте количество итераций, необходимых для этого (итерация - это проход цикла), и запишите его в переменную num.