Вы можете проверить этот курс на мой сайт.
Циклы позволяют многократно выполнять блок кода до тех пор, пока не будет выполнено определенное условие. C# имеет четыре различных вида циклов (for, while, do…while и foreach).
Цикл для
Синтаксис:
инициализатор — это выражение, которое вычисляется перед первым выполнением тела цикла. Обычно здесь объявляется локальная переменная, которая является счетчиком в цикле, но можно объявить и другие переменные в зависимости от задачи.
условие —это выражение, которое проверяется перед каждой новой итерацией цикла, если оно истинно, начинается выполнение итерации, если нет, то выполнение цикла прекращается.
iterator — выражение, оцениваемое после каждой итерации. Итерация — это однократное выполнение блока цикла. Обычно здесь увеличивается значение счетчика.
Пример:
Результат:
Давайте посмотрим, как работает цикл, шаг за шагом:
- Определить переменную
int i = 1
; - Добавьте условие цикла
i ≤ 3
, так как это первая итерация иi = 1
, тогда выполняется условие 1 ≤ 3 и запускается первая итерация цикла — конструкцияConsole.WriteLine(i)
, которая выводит значение i в консоль. - После выполнения блока кода заканчивается первая итерация и выполняется третья часть цикла —
i++
. После этого переменнаяi
будет равна 2. - Условие
i ≤ 3
проверяется снова. Это правда (потому что 2 меньше или равно 3), поэтому блок цикла выполняется снова —Console.WriteLine(i)
. - После выполнения блока кода вторая итерация завершается и выполняется третья часть цикла —
i++
. После этого переменная i будет равна 3. - Условие
i ≤ 3
проверяется снова. Это правда (потому что 3 меньше или равно 3), поэтому блок цикла выполняется снова —Console.WriteLine(i)
. - После выполнения блока кода завершается третья итерация и выполняется третья часть цикла —
i++
. После этого переменнаяi
будет равна 4. - Условие
i ≤ 3
проверяется снова. Это ложно (поскольку 4 НЕ меньше или равно 3), поэтому выполнение цикла прекращается.
Также можно опустить первую и третью часть цикла, главное не забыть поставить точку с запятой:
Результат будет таким же, как в примере выше, потому что у нас точно такое же условие выхода из цикла и переменная-счетчик i
, объявленная вне цикла, которая увеличивается с каждой итерацией.
А если не указать условие выхода из цикла, то получим бесконечный цикл:
Наконец, рассмотрим пример с несколькими переменными в объявлении цикла:
Сначала мы определяем две переменные i = 1
и j = 1
в начале цикла, затем добавляем условие выхода из цикла i < 5
и указываем, что после каждой итерации значения i
и j
увеличиваются.
Внутри цикла мы выводим текущую итерацию и результат умножения i
на j
.
Результат:
Цикл во время
В цикле while сначала выполняется условие, а затем выполняется код, если условие истинно. while похож на for, но включает только условие. Синтаксис:
Пример:
Здесь мы объявляем переменную i
, которая будет проверяться в условии цикла while и уменьшаться с каждой итерацией, пока условие не станет ложным.
Результат:
Цикл do…в то время как
Цикл do…while в C# — это посттестовая версия цикла while. Это означает, что условие цикла проверяется после выполнения тела цикла. Синтаксис:
Цикл do…while следует использовать, когда вам нужно выполнить код внутри цикла хотя бы один раз. Пример:
Хотя у нас переменная i
меньше 0, цикл все равно будет выполнен один раз.
Результат:
Цикл foreach
Цикл foreach используется для перебора массива или набора элементов. Синтаксис:
Здесь переменная data_type означает тип и имя переменной цикла, которая получает значение элемента коллекции на каждой итерации, а коллекция представляет коллекцию/ массив для итерации.
foreach работает следующим образом — в начале цикла первый элемент коллекции присваивается переменной цикла, после каждой итерации следующий элемент коллекции присваивается переменной цикла. Цикл выполняется до тех пор, пока не пройдет все элементы коллекции.
Пример:
Здесь коллекция — это строка — «Привет», потому что строка — это массив символов. Итак, мы пройдемся по каждому строковому символу. Мы также объявили в цикле переменную item
с типом char
, который должен соответствовать типу элементов коллекции.
Результат:
Мы также можем явно не указывать тип переменной в цикле, а использовать ключевое слово var. В случае использования var компилятор сам определит тип. На практике чаще используется var, чем явный тип.
Мы рассмотрели, как перебирать строку в foreach, но в следующих разделах мы познакомимся с массивами и коллекциями и посмотрим, как их перебирать.
Вложенные циклы
Циклы могут быть вложены в другие циклы, я покажу это на примере цикла for:
Здесь цикл for (int i = 1; i <= 4; i++)
имеет 4 итерации, но внутри каждой итерации другой цикл for (int j = 1; j <= 5; j++)
выполняется с 5 итерациями.
Результат:
Предыдущая статья -› 2.12 Тернарный оператор
Присоединяйтесь к нашему сообществу в Telegram — https://t.me/itifico
Если вы хотите поддержать меня, вы можете купить мне чашку кофе, и я выпью ее, когда буду писать следующую статью :)