Объявление управляющих переменных в цикле for



 

Нередко переменная, управляющая циклом 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);

}

}

}

 

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

 

В степени 0 равно 1

В степени 1 равно 2

В степени 2 равно 4

В степени 3 равно 8

В степени 4 равно 16

В степени 5 равно 32

В степени 6 равно 64

В степени 7 равно 128

В степени 8 равно 256

В степени 9 равно 512

 

Обратите внимание на то, что цикл while выполняется только в том случае, если значение переменной е больше нуля. А когда оно равно нулю, как это имеет место на первом шаге цикла for, цикл while пропускается.

 

 

Оператор цикла do-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


Дата добавления: 2019-02-12; просмотров: 305; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!