Вы можете проверить этот курс на мой сайт.

Циклы позволяют многократно выполнять блок кода до тех пор, пока не будет выполнено определенное условие. C# имеет четыре различных вида циклов (for, while, do…while и foreach).

Цикл для

Синтаксис:

инициализатор — это выражение, которое вычисляется перед первым выполнением тела цикла. Обычно здесь объявляется локальная переменная, которая является счетчиком в цикле, но можно объявить и другие переменные в зависимости от задачи.

условие —это выражение, которое проверяется перед каждой новой итерацией цикла, если оно истинно, начинается выполнение итерации, если нет, то выполнение цикла прекращается.

iterator — выражение, оцениваемое после каждой итерации. Итерация — это однократное выполнение блока цикла. Обычно здесь увеличивается значение счетчика.

Пример:

Результат:

Давайте посмотрим, как работает цикл, шаг за шагом:

  1. Определить переменную int i = 1;
  2. Добавьте условие цикла i ≤ 3, так как это первая итерация и i = 1, тогда выполняется условие 1 ≤ 3 и запускается первая итерация цикла — конструкция Console.WriteLine(i), которая выводит значение i в консоль.
  3. После выполнения блока кода заканчивается первая итерация и выполняется третья часть цикла — i++. После этого переменная i будет равна 2.
  4. Условие i ≤ 3 проверяется снова. Это правда (потому что 2 меньше или равно 3), поэтому блок цикла выполняется снова — Console.WriteLine(i).
  5. После выполнения блока кода вторая итерация завершается и выполняется третья часть цикла — i++. После этого переменная i будет равна 3.
  6. Условие i ≤ 3 проверяется снова. Это правда (потому что 3 меньше или равно 3), поэтому блок цикла выполняется снова — Console.WriteLine(i).
  7. После выполнения блока кода завершается третья итерация и выполняется третья часть цикла — i++. После этого переменная i будет равна 4.
  8. Условие 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

Если вы хотите поддержать меня, вы можете купить мне чашку кофе, и я выпью ее, когда буду писать следующую статью :)