Выход из цикла, пропуск шага цикла или break и continue в Swift
Если в ios-приложении (и не только) используются массивы большой размерности, то перебор элементов этих массивов может быть затратной с точки зрения ресурсов и производительности операцией. Однако не всегда нужно перебирать все элементы массива от начала до конца.
Для оптимизации работы приложения, внутри которого происходит перебор с помощью цикла, можно использовать следующие приемы:
1. Выход из цикла
Из цикла вы может выйти в любое время с помощью оператора break:
// // proSwift.ru // var found = false var count = 0 for item in array { if item == search { found = true count++ break } }
Как только цикл найдет элемент item, который удовлетворяет условию поиска search, он изменит значение переменной found и увеличит значение счетчика count на 1. А после этого прекратит дальнейший перебор элементов массива array, использую оператор break. В итоге, если в массиве есть элемент, удовлетворяющий условиям поиска, значение count будет равно 1, и более оно не изменится. Вы нашли то, что вы искали и если не имеет никакого смысла смотреть на другие объекты в этом массиве (которых могут быть сотни), вы используете break.
Существует также оператор continue, который работает отлично от break. Оператор не выходит из цикла, но сразу же переходит к следующей итерации (следующему шагу).
// // // proSwift.ru // var found = false for item in array { if item == search { count++ continue found = true print("Found!") } }
В этом примере цикл переберет все элементы, и после его выполнения переменная count будет равна количеству элементов в массиве array, удовлетворяющих условию поиска search. Но переменная found никогда не примет значение true, и функция print() также не сработает. Как только исполнение программы дойдет до оператора continue, шаг цикла завершится, и начнется следующий шаг с новым элементом item.
Добавить комментарий