Ниже приведена общая форма оператора for для повторного выполнения единственного оператора.

for {инициализация; условие ; итерация) оператор;

А вот как выглядит его форма для повторного выполнения кодового блока:

for (инициализация; условие; итерация)

{

последовательность операторов;

}

где инициализация; как правило, представлена оператором присваивания, задающим первоначальное значение переменной, которая выполняет роль счетчика и управляет циклом; условие — это логическое выражение, определяющее необходимость повторения цикла; а итерация — выражение, определяющее величину, на которую должно изменяться значение переменной, управляющей циклом, при каждом повторе цикла. Обратите внимание на то, что эти три основные части оператора цикла for должны быть разделены точкой с запятой. Выполнение цикла for будет продолжаться до тех пор, пока проверка условия дает истинный результат. Как только эта проверка даст ложный результат, цикл завершится, а выполнение программы будет продолжено с оператора, следующего после цикла for.

Цикл for может продолжаться как в положительном, так и в отрицательном направлении, изменяя значение переменной управления циклом на любую величину. В приведенном ниже примере программы выводятся числа; постепенно уменьшающиеся от 100 до -100 на величину 5.

// Выполнение цикла for в отрицательном направлении.

Using System;

class DecrFor {

static void Main() { int x;

for(x = 100; x > -100; x -= 5)

Console.WriteLine(x);

}

}

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

for(count=10; count < 5; count++)

x += count; // этот оператор не будет выполняться

Данный цикл вообще не будет выполняться, поскольку первоначальное значение переменной count, которая им управляет, сразу же оказывается больше 5. Это означает, что условное выражение count < 5 оказывается ложным с самого начала, т.е. еще до выполнения первого шага цикла.

Оператор цикла for — наиболее полезный для повторного выполнения операций известное число раз. В следующем примере программы используются два цикла for для выявления простых чисел в пределах от 2 до 20. Если число оказывается непростым, то выводится наибольший его множитель.

// Выяснить, является ли число простым. Если оно // непростое, вывести наибольший его множитель.

Using System;

class FindPrimes { static void Main() { int num; int i; int factor; bool isprime;

for(num = 2; num < 20; num++) { isprime = true; factor = 0;

// Выяснить, делится ли значение переменной num нацело. for(i=2; i <= num/2; i++) {

if((num % i) == 0) {

// Значение переменной num делится нацело.

// Следовательно, это непростое число, isprime = false; factor = i;

}

If(isprime)

Console.WriteLine(num + " — простое число."); else

-Console.WriteLine("Наибольший множитель числа " + num + " равен " + factor);

}

}

}

Ниже приведен результат выполнения этой программы.

Простое число

Простое число

 

Наибольший множитель

 

Числа

 

 

Равен 2

 

Простое число Наибольший множитель

 

Числа

 

 

Равен 3

 

Простое число Наибольший множитель

 

Числа

 

 

Равен 4

 

Наибольший множитель

 

Числа

 

 

Равен 3

 

Наибольший множитель

 

Числа

 

 

Равен 5

 

Простое число Наибольший множитель

 

Числа

 

 

Равен 6

 

Простое число Наибольший множитель

 

Числа

 

 

Равен 7

 

Наибольший множитель

 

Числа

 

 

Равен 5

 

Наибольший множитель

 

Числа

 

 

Равен 8

 

Простое число Наибольший множитель

 

Числа

 

 

Равен 9

 

Простое число

Некоторые разновидности оператора цикла for

Оператор цикла for относится к самым универсальным операторам языка С#, поскольку он допускает самые разные варианты своего применения. Некоторые разновидности оператора цикла for рассматриваются ниже.

Применение нескольких переменных управления циклом

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

// Использовать запятые в операторе цикла for.

Using System;

class Comma {

static void Main() { int i, j;

for(i=0, j = 10; i < j; i++, j —)

Console.WriteLine("i и j: " + i + " " + j) ;