Andriy Shyrokoryadov

.Net developer, data scientist

Виды циклов - вопрос №8 на собеседование C# / .NET

Текст к видео "Виды циклов" на канале YouTube

Если вам приходилось во время программирования выполнять в коде многократно одну и ту же операцию или набор операций, то скорей всего вы использовали оператор цикла. Операция или набор операций циклически выполнялись пока выполнялось условие цикла. C# имеет несколько возможностей декларирования циклов. В зависимости от наших потребностей мы обсудим конктретные примеры декларирования циклов в коде.

Если вам необходимо выполнить цикл операций определенное количество раз, то скорей всего мы сможем реализовать этот сценарий используя оператор цикла for. Для оператора for важно задекларировать переменную счетчика и присвоить ей первоначальное значение; далее необходимо указать условие, по которому цикл прерывается и, наконец, указывается способ изменения значения счетчика.

Если вам необходимо перебрать все элементы в определённом контейнере (назовём этот контейнер коллекцией), то стоит рассмотреть возможность использования оператора цикла foreach. В отличии от оператора for, при использваонии foreach нет необходимости декларировать переменные счетчиков и определять условия завершения цикла. Во время работы оператора foreach у вас будет доступ к каждому элементу в контейнере. Особенностью цикла foreach является работа в одном направлении – перебор элементов коллекции начинается с первого элемента и заканчивается последним, движение по коллекции «направлено», как бы, вперед. Важное замечание – так назваемый контейнер, который вы планируете использовать в операторе foreach, должен реализовывать интерефейс IEnumerable.

Не всегда условием окончания цикла является достижение счетчиком операций какого-то определенного значения. Часто это может быть какое-то условие или несколько условий – число циклов заранее неизвестно. В этом случае вам пригодятся циклы while и do/while. Цикл while будет выполнятся пока выполняется условие выполнения цикла. Может случится так, что условие выполнения цикла изначально не выполняется – в таком случае операция или операции в цикле while не выполнятся ни одного раза. Если такой эффект нежелателен и операции указанные в цикле должны выполниться хотя бы один раз, то в этом случае небхоимо использовать оператор цикла do/while. Данный оператор гарантирует выполнения команд в цикле хотя бы один раз.