Служит для организации циклов с заранее известным числом повторений. Циклы, в которых количество повторений заранее определено, называются регулярными.
В цикле изменение индекса цикла заложено в инструкцию. Задаются - начальное значение индекса (инициализация), условие выполнения, правило изменения индекса после итерации. Разделители для параметров инструкции for – точка с запятой (;).
Формат записи цикла for для повторного использования одной инструкции имеет вид:
for (инициализация; условие выполнения; итерация) инструкция;
Если цикл предназначен для повторного выполнения
программного блока, то его формат:
for (индекс цикла = начало; условие выполнения; изменение индекса)
{
Инструкции тела цикла;
}
Существует 2 варианта записи инструкции:
Инкрементный вариант:
Пример1. Программа использует цикл, в котором в консоль выводится последовательность чисел от 0 до 9 (шаг = 1).
static void Main(string[] args)
{
for (int i = 0; i < 10; i++) // шаг = 1
Console.WriteLine("i = {0} ", i);
Console.ReadKey();
}
Декрементный вариант:
Пример2. Программа использует цикл, в котором в консоль выводится последовательность чисел от 10 до 1 (шаг = -1).
static void Main(string[] args)
{
for (int i = 10; i > 0; i--) // шаг = -1
Console.WriteLine("i = {0} ", i);
Console.ReadKey();
}
Выполняется оператор For следующим образом:
1. Сначала вычисляется и запоминается начальное и конечное значения индекса цикла (индекс – порядкового типа).
2. Далее индексу цикла присваивается начальное значение.
3. Затем значение индекса цикла сравнивается с конечным значением.
4. Далее, пока индекс цикла £ конечного значения (в 1 варианте оператора), выполняется очередная итерация цикла, в противном случае – выход из цикла.
5. При завершении цикла индекс цикла объявляется неопределенным.
Задача2. Вывести на экран буквы от A до Z (инкрементный вариант)
static void Main(string[] args)
{
for (char i = 'a'; i <= 'z'; i++)
Console.Write(" "+ i);
Console.ReadKey();
}
Задача3. Написать программу, которая выводит таблицу квадратов первых десяти целых положительных чисел (инкрементный вариант).
static void Main(string[] args)
{
int x = 1, y = 1;
Console.WriteLine("Таблица квадратов:");
Console.WriteLine();
Console.WriteLine("------------------");
Console.WriteLine(" x | y ");
Console.WriteLine("------------------");
for (byte i = 1; i <= 10; i++)
{
y = x * x;
Console.WriteLine(" x = {0,2} | y = {1,3}", x, y);
x=x+1;
}
Console.WriteLine("------------------");;
Console.ReadKey();
}
Задача4. Обратный отсчет времени перед запуском (декрементный вариант)
static void Main(string[] args)
{
Console.WriteLine("Обратный отсчет времени:");
Console.WriteLine();
for (byte second = 10; second >= 1; second--) //отрицательное приращение
{
Console.Write("Осталось ={0,2} ", second);
Console.WriteLine(" минут");
}
Console.WriteLine();
Console.WriteLine("Старт!");
Console.ReadKey();
}