Еще одним оператором цикла в 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
Обратите внимание на то, что цикл while
выполняется только в том случае, если значение переменной e
больше нуля. А когда оно равно нулю, как это имеет место на первом шаге цикла for
, цикл while
пропускается.
Объявление управляющих переменных в цикле for | Оператор цикла do-while |