}
}
Выполнение этой программы дает следующий результат.
Число: 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
выполняется только в том случае, если значение переменной е больше нуля. А когда оно равно нулю, как это имеет место на первом шаге цикла for
, цикл while
пропускается.
Третьим оператором цикла в C# является оператор do-while
. В отличие от операторов цикла for
и while
, в которых условие проверялось в самом начале цикла, в операторе do-while условие выполнения цикла проверяется в самом его конце. Это означает, что цикл do-while
всегда выполняется хотя бы один раз. Ниже приведена общая форма оператора цикла do-while
.
do {
операторы ;
} while ( условие ) ;
При наличии лишь одного оператора фигурные скобки в данной форме записи необязательны. Тем не менее они зачастую используются для того, чтобы сделать конструкцию do-while более удобочитаемой и не путать ее с конструкцией цикла while. Цикл do-while
выполняется до тех пор, пока условное выражение истинно.
В приведенном ниже примере программы цикл do-while
используется для представления отдельных цифр целого числа в обратном порядке.
// Отобразить цифры целого числа в обратном порядке.
using System;
class DoWhileDemo {
static void Main() {
int num;
int nextdigit;
num = 198;
Console.WriteLine("Число: " + num);
Console.Write("Число в обратном порядке: ");
do {
nextdigit = num % 10;
Console.Write(nextdigit);
num = num / 10;
} while(num > 0);
Console.WriteLine() ;
}
}
Выполнение этой программы дает следующий результат.
Число: 198
Число в обратном порядке: 891
Приведенный выше цикл действует следующим образом. На каждом его шаге крайняя слева цифра получается в результате расчета остатка от деления целого числа (значения переменной num) на 10. Полученная в итоге цифра отображается. Далее значение переменной num делится на 10. А поскольку это целочисленное деление, то в его результате крайняя слева цифра отбрасывается. Этот процесс повторяется до тех пор, пока значение переменной num не достигнет нуля.
Оператор цикла foreach
служит для циклического обращения к элементам коллекции , которая представляет собой группу объектов. В C# определено несколько видов коллекций, к числу которых относится массив. Подробнее о цикле foreach
речь пойдет в главе 7, где рассматриваются массивы.
Читать дальше