Page 104 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 104
Предположим, например, что определение принадлежности числа к простым от
носительно дорого с точки зрения вычислений. Если вы ищете первый множитель
в списке из тысяч чисел, прямолинейный подход мог бы быть таким.
let firstPrime = null ;
for ( l et n o f ЫgArrayOfNumЬers )
l
if ( isPrime ( n ) & & firstPrime nu l ) firstPrime = n ;
Если в ЬigArrayOfNwnЬers есть миллион чисел и только последнее является прос
тым (что вам неизвестно), этот подход был бы прекрасен. Но что если простым яв
ляется первое число? Или пятое, или пятидесятое? Вы проверили бы миллион чисел
на принадлежность к простым, хотя могли бы остановиться в самом начале! Звучит
удручающе. Мы можем использовать оператор break, как только найдем искомое.
l
let firstPrime = nu l ;
for ( l e t n of ЫgArrayOfNumЬers)
i f ( isPrime ( n ) ) {
firstPrime = n ;
break;
Если это цикл в функции, вместо b r eak мы могли бы использовать оператор
return.
И спользова н и е з н ачения и н декса
после завершения цикла
Иногда важнейшим результатом цикла является значение индексной переменной
после преждевременного завершении цикла оператором break. Мы можем исполь
зовать в своих интересах тот факт, что по завершении цикла for индексная перемен
ная сохраняет свое значение. Если вы используете эту схему, имейте в виду случай,
когда цикл завершается успешно и без break. Например, мы можем использовать эту
схему для нахождения индекса первого простого числа в нашем массиве.
let i = О ;
for ( ; i < ЫgArrayOfNumЬers . length; i++ ) {
i f ( isPrime (ЬigArrayOfNumЬers [ i ] ) ) break;
л
i f ( i === ЫgArrayOfNumЬers . lengt ) console . l o ( ' Heт простых чисе ! ' ) ;
h
g
g
else console . l o ( ' Пepвoe простое число находится в $ { i ) элементе массива . ' ) ;
И спольз о в а н и е убывающих и н дексов
п р и изменен и и списков
Изменение списка в цикле по его элементам может быть очень сложным, поскольку
при изменении списка могут измениться и условия выхода из цикла. В лучшем случае
Популярные схемы управления потоком 1 0 3

