English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс C#

Дополнительный курс C#

C#面向对象(OOP)

Цикл for в C#

Здесь вы узнаете, как использовать цикл 'for', структуру цикла 'for', многократное выполнение инструкций или блоков кода с помощью вложенных циклов 'for', а также как выйти из цикла 'for'.

Ключевое слово 'for' указывает на цикл в C#. Цикл 'for' повторно выполняет блок инструкций до тех пор, пока заданное условие не вернет false.

Синтаксис:

for (инициализатор; условие; итератор)
{    
   //Блок кода 
}

Цикл for содержит следующие три необязательные части, разделенные точками с запятой:

Инициализатор: Используется для инициализации переменной, которая будет локальной переменной цикла for и не может быть доступна вне цикла. Это также может быть ноль или несколько операторов присваивания, вызовов методов, операторов инкремента или декремента, таких как ++i или i++, а также выражений await.

Условие: Условие - это булевое выражение, которое возвращает true или false. Если результат вычисления выражения true, то цикл будет выполнен снова; в противном случае, цикл завершится.

Итератор: Итератор определяет приращение или уменьшение переменной цикла.

Данный цикл for выполняет блок кода 10 раз.

for(int i = 0; i < 10; i++)
{
    Console.WriteLine("Значение i: {0}", i);
}

Попробуйте вывести:

Значение i: 0
Значение i: 1
Значение i: 2
Значение i: 3
Значение i: 4
Значение i: 5
Значение i: 6
Значение i: 7
Значение i: 8
Значение i: 9

В предыдущем примере int i = 0 является инициализатором, и мы определили int Переменная i и初始化 ее значением 0. Вторая часть - это условное выражение i < 10, если это условие вернет Если условное выражение равно true, то он выполнит блок кода. После выполнения блока кода он перейдет к третьей части итератора. i+ + является оператором инкремента, который увеличит переменную цикла i Значение увеличивается на 1. Теперь он снова проверит условное выражение и повторит те же действия, пока условное выражение не вернет false. Ниже показан процесс выполнения цикла for.

Ниже показан процесс выполнения цикла for.

Шаги выполнения цикла for

Если блок кода содержит только одну инструкцию, его не нужно заключать в фигурные скобки { }, как показано ниже.

 Пример: цикл for

for(int i = 0; i < 10; i++){
  Console.WriteLine("Значение i: {0}", i);
}

Части инициализатора, условия и итератора являются необязательными. Вы можете инициализировать переменную до цикла for и определить условия и итераторы в блоке кода, как показано ниже.

 Пример: цикл for в C#

int i = 0;
for(;;)
{
    if (i < 10)
    {
      Console.WriteLine("Значение i: {0}", i);
      i++;
    }
       break;
    }
}
Вывод:
Значение i: 0
Значение i: 1
Значение i: 2
Значение i: 3
Значение i: 4
Значение i: 5
Значение i: 6
Значение i: 7
Значение i: 8
Значение i: 9

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

for ( ; ; )
{
    Console.Write(1);
}
Вывод:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ....

Контрольная переменная цикла for может быть любым типом числовых данных, например double, decimal и т.д.

for (double d = 1.01D; d < 1.10; d += 0.01D)
{
    Console.WriteLine("Значение i: {0}", d);
}
Вывод:
Значение i: 1.01
Значение i: 1.02
Значение i: 1.03
Значение i: 1.04
Значение i: 1.05
Значение i: 1.06
Значение i: 1.07
Значение i: 1.08
Значение i: 1.09

Часть шага в цикле for может увеличивать или уменьшать значение переменной.

for (int i = 10; i > 0; i--)
{
    Console.WriteLine("Значение i: {0}", i);
}
Вывод:
Значение i: 10
Значение i: 9
Значение i: 8
Значение i: 7
Значение i: 6
Значение i: 5
Значение i: 4
Значение i: 3
Значение i: 2
Значение i: 1

Выход из цикла for

Вы также можете использовать ключевое слово break для выхода из цикла for.

for (int i = 0; i < 10; i++)
{
    if (i == 5)
        break;
    Console.WriteLine("Значение i: {0}", i);
}
Вывод:
Значение i: 0
Значение i: 1
Значение i: 2
Значение i: 3
Значение i: 4

Несколько выражений

Цикл for также может включать несколько выражений, разделенных запятыми, как показано ниже.

for (int i = 0, j = 0; i+j < 5; i++, j++)
{
    Console.WriteLine("Значение i: {0}, J: {1} ", i, j);
}
Вывод:
Значение i: 0, J: 0 
Значение i: 1, J: 1 
Значение i: 2, J: 2

Цикл for также может содержать инструкции в качестве начальных значений и итераторов.

int i = 0, j = 5;
for (Console.WriteLine($"Инициализатор: i={i}, j={j}"); 
    i++ < j--; 
    Console.WriteLine($"Итератор: i={i}, j={j}"))
    {
    }

Вывод:

Инициализатор: i = 0, j = 5
Итератор: i = 1, j = 4  
Итератор: i = 2, j = 3  
Итератор: i = 3, j = 2

Написанные циклы

C# позволяет использовать один цикл в другом цикле.

for(int i = 0; i < 2; i++)
{
    for(int j = i; j < 4; j++)
       Console.WriteLine("Значение i: {0}, J: {1}", i, j);
    }
        
}
Вывод:
Значение i: 0, J: 0 
Значение i: 0, J: 1  
Значение i: 0, J: 2  
Значение i: 0, J: 3  
Значение i: 1, J: 1  
Значение i: 1, J: 2  
Значение i: 1, J: 3