Нередко переменная, управляющая циклом for
, требуется только для выполнения самого цикла и нигде больше не используется. В таком случае управляющую переменную можно объявить в инициализирующей части оператора цикла for
. Например, в приведенной ниже программе вычисляется сумма и факториал чисел от 1 до 5, а переменная i, управляющая циклом for
, объявляется в этом цикле.
// Объявить переменную управления циклом в самом цикле for.
using System;
class ForVar {
static void Main() {
int sum = 0;
int fact = 1;
// вычислить факториал чисел от 1 до 5
for(int i = 1; i <= 5; i++) {
sum += i; // Переменная i действует в цикле,
fact *= i;
}
// А здесь переменная i недоступна.
Console.WriteLine("Сумма равна " + sum);
Console.WriteLine("Факториал равен " + fact);
}
}
Объявляя переменную в цикле for
, не следует забывать о том, что область действия этой переменной ограничивается пределами оператора цикла for
. Это означает, что за пределами цикла действие данной переменной прекращается. Так, в приведенном выше примере переменная i оказывается недоступной за пределами цикла for
. Для того чтобы использовать переменную управления циклом в каком-нибудь другом месте программы, ее нельзя объявлять в цикле for
.
Прежде чем переходить к чтению следующего материала, поэкспериментируйте с собственными разновидностями оператора цикла for.
В ходе эксперимента вы непременно обнаружите замечательные свойства этого оператора цикла.
Оператор цикла while
Еще одним оператором цикла в C# является оператор while. Ниже приведена общая форма этого оператора:
while (
где
Ниже приведен простой пример программы, в которой цикл while используется для вычисления порядка величины целого числа.
// Вычислить порядок величины целого числа,
using System;
class WhileDemo {
static void Main() {
int num;
int mag;
num = 435679;
mag = 0;
Console.WriteLine("Число: " + num);
while(num > 0) {
mag++;
num = num / 10;
};
Console.WriteLine("Порядок величины: " + mag);
}
}
Выполнение этой программы дает следующий результат.
Число: 435679
Порядок величины: 6
Приведенный выше цикл while
действует следующим образом. Сначала проверяется значение переменной num. Если оно больше нуля, то переменная mag, выполняющая роль счетчика порядка величины, инкрементируется, а значение переменной num делится на 10. Цикл повторяется до тех пор, пока значение переменной num остается больше нуля. Как только оно окажется равным нулю, цикл завершается, а в переменной mag остается порядок величины первоначального числового значения.
Как и в цикле for
, в цикле while
проверяется условное выражение, указываемое в самом начале цикла. Это означает, что код в теле цикла может вообще не выполняться, а также избавляет от необходимости выполнять отдельную проверку перед самим циклом. Данное свойство цикла while
демонстрируется в следующем примере программы, где вычисляются целые степени числа 2 от 0 до 9.
// Вычислить целые степени числа 2.
using System;
class Power {
static void Main() {
int e;
int result;
for (int i=0; i < 10; i++) {
result = 1;
e = i;
while (e > 0) {
result *= 2;
e--;
}
Console.WriteLine ("2 в степени " + i + " равно " + result);
}
}
}
Результат выполнения этой программы приведен ниже.
2 в степени 0 равно 1
2 в степени 1 равно 2
2 в степени 2 равно 4
2 в степени 3 равно 8
2 в степени 4 равно 16
2 в степени 5 равно 32
2 в степени 6 равно 64
2 в степени 7 равно 128
2 в степени 8 равно 256
2 в степени 9 равно 512