Цикл for в C#
В этой статье вы узнаете о цикле for в C# и о том, как его можно использовать в программах на C#.
В программировании порой необходимо выполнить набор инструкций определенное количество раз. Возможное решение — скопировать код. Но есть проблема: количество этих наборов мы можем либо не знать, либо их может быть очень много (10000, к примеру).
Решение проблемы — циклы. В программировании циклы используются для многократного выполнения блока кода. Цикл работает до тех пор, пока заданное условие истинно.
Цикл for
Для инициализации цикла используется ключевое слово for.
Синтаксис цикла
for (счетчик; условие; итератор)
{
// тело цикла
}
Как работает цикл for
- В цикле for три переменные:
счетчик,условиеиитератор. - Объявление счетчика происходит в самом начале и лишь раз. Обычно он инициализируется сразу после объявления.
- Затем проверяется условие. Условие — булево выражение. То есть, возвращает
trueилиfalse. - Если
условиеопределяется какtrue:
• Выполняются инструкции внутри цикла.
• После этого инициализируетсяитератор— обычно изменяется значение этой переменной.
•Условиепроверяется снова.
• Процесс повторяется до тех пор, покаусловиене будет определено какfalse. - Если
условиеопределится какfalse, цикл завершается.
Блок-схема работы цикла

Пример 1. Итерации цикла for
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=1; i<=5; i++)
{
Console.WriteLine("Цикл for C#: итерация {0}", i);
}
}
}
}
Вывод:
Цикл for C#: итерация 1
Цикл for C#: итерация 2
Цикл for C#: итерация 3
Цикл for C#: итерация 4
Цикл for C#: итерация 5
В этой программе:
счетчик—int = 1,условие—i <= 5,итератор—i++,
После запуска программы происходит следующее:
- Объявляется и инициализируется переменная
i. Ей присваивается значение 1. - После этого проверяется условие
i <= 5. - Если проверка условия возвращает `true`, выполняется тело цикла. Оно печатает строку "Цикл for C#: итерация 1".
- Затем определяется значение итератора (
i++). Значениеiувеличивается до 2. - Условие (
i <= 5) проверяется снова и значениеiувеличивается на 1. Первые 5 итераций условие цикла будет оцениваться какtrue. - Когда значение
iстанет равняться 6, условие оценится какfalse. Следовательно, цикл завершится.
Пример 2. Вычисляем сумму первых n натуральных чисел
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
int n = 5, sum = 0;
for (int i=1; i<=n; i++)
{
// sum = sum + i;
sum += i;
}
Console.WriteLine("Сумма первых {0} натуральных чисел = {1}", n, sum);
}
}
}
Вывод:
Сумма первых 5 натуральных чисел = 15
В этой программе объявляются две переменные — sum и n. Их значения равны 0 и 5 соответственно. Значение счетчика i в самом начале равно 1.
Внутри цикла значение переменной sum увеличивается на i — sum = sum + i. Цикл продолжается до тех пор, пока значение счетчика i меньше или равно n.
Давайте посмотрим, что происходит на каждой итерации цикла.
Изначально i = 1, sum = 0 и n = 5.
|
Итерация |
Значение i |
i <= 5 |
Значение sum |
|
1 |
1 |
|
0+1=1 |
|
2 |
2 |
|
1+2=3 |
|
3 |
3 |
|
3+3=6 |
|
4 |
4 |
|
6+4=10 |
|
5 |
5 |
|
10+5=15 |
|
6 |
6 |
|
Цикл завершается |
То есть, финальное значение sum будет равняться 15.
Несколько выражений внутри цикла for
Внутри цикла for может быть несколько выражений. Это значит, что мы можем инициализировать несколько счетчиков и итераторов. Давайте разберем следующий пример.
Пример 3. Цикл for с несколькими выражениями
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
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
В этой программе мы объявили и инициализировали 2 переменных-счетчика — i и j.
В части итератора у нас также два выражения. То есть, на каждой итерации цикла i и j увеличиваются на 1.
Цикл for без объявления счетчика и итератора
Объявление счетчика, условия и итератора в цикле for не обязательно. Запустить цикл for мы можем и без них.
В таких случаях цикл for работает так же, как и while. Давайте рассмотрим.
Пример 4. Цикл for без объявления счетчика и итератора
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
int i = 1;
for ( ; i<=5; )
{
Console.WriteLine("Цикл for C#: итерация {0}", i);
i++;
}
}
}
}
Вывод:
Цикл for C#: итерация 1
Цикл for C#: итерация 2
Цикл for C#: итерация 3
Цикл for C#: итерация 4
Цикл for C#: итерация 5
В этом примере мы не объявляли счетчик и итератор.
Переменная i объявлена до цикла for и ее значение увеличивается внутри тела цикла. Эта программа практически идентична той, о которой мы говорили в первом примере.
Условие цикла также является необязательным параметром. Но без условия цикл будет бесконечным.
Бесконечный цикл for
Если условие выполнения цикла всегда true, то он будет выполняться бесконечно. Это называется бесконечным циклом.
Пример 5. Бесконечный цикл for
using System;
namespace Loop
{
class ForLoop
{
public static void Main(string[] args)
{
for (int i=1 ; i > 0; i++)
{
Console.WriteLine("Цикл for C#: итерация {0}", i);
}
}
}
}
В этом примере i было присвоено значение 1. Условие — i > 0. На каждой итерации цикла значение `i` увеличивается на 1. Из-за этого условие цикла никогда не примет значение false. Именно поэтому цикл будет выполняться бесконечно.
Инициализировать бесконечный цикл можно и заменой условия пробелом. Например:
for ( ; ; )
{
// тело цикла
}
или
for (счетчик; ; итератор)
{
// тело цикла
}
Закрепите практикой
Задачи с автоматической проверкой — решайте прямо здесь, не уходя из учебника.