While ( выражение ) оператор

Цикл с предусловием while

Формат оператора прост:

Выражение должно быть логического типа. Например, это может быть операция отношения или просто логическая переменная. Если результат вычисления выражения равен true, выполняется простой или составной оператор (блок). Эти действия повторяются до того момента, пока результатом выражения не станет значение false. После окончания цикла управление передается на следующий за ним оператор.

Рекуррентной называется формула, в которой новое значение переменной вычисляется с использованием ее предыдущего значения.

Выражение вычисляется перед каждой итерацией цикла. Если при первой проверке выражение равно false, цикл while не выполнится ни разу.

 

Если в теле цикла необходимо выполнить более одного оператора, необходимо заключить их в блок с помощью фигурных скобок.

Пример программы с оператором цикла while

В качестве примера рассмотрим программу, выводящую для аргумента х, изме­няющегося в заданных пределах с заданным шагом, таблицу значений следующей функции:

Назовем начальное значение аргумента Хn, конечное значение аргумента — Хк, шаг изменения аргумента — dX и параметр t. Все величины вещественные. Программа должна выводить таблицу, состоящую из двух столбцов: значений аргумента и соответствующих им значений функции.

Опишем алгоритм в словесной форме:

1. Взять первое значение аргумента.

2. Определить, какому из интервалов оно принадлежит, и вычислить значение функции по соответствующей формуле.

3. Вывести строку таблицы.

4. Перейти к следующему значению аргумента.

5. Если оно не превышает конечное значение, повторить шаги 2-4, иначе закончить. Шаги 2-4 повторяются многократно, поэтому для их выполнения надо организовать цикл. Обратите внимание на то, что условие продолжения цикла записано в его заголовке и проверяется до входа в цикл. Таким образом, если задать конечное значение аргумента, меньшее начального, даже при отрицательном шаге цикл не будет выполнен ни разу.

//ТЕКСТ ПРОГРАММЫ *

using System;

namespace ConsoleApplication1

{ class Class1

{ static void Main()

{

double Xn = -2, Xk = 12, dX = 2, t = 2, y:

Console.WriteLine( "| x | у |" ): // заголовок таблицы

double x = Xn;

while ( x <= Xk )

{

y = t;

if ( х >= 0 && х < 10 ) у = t * х;

if ( х >= 10 ) у = 2 * t;

Console.WriteLine( "| {0,6} | {1,6} |", x, у ); //задаваемая ширина поля //для вывода переменных

x += dX;

} }}

Параметром этого цикла, то есть переменной, управляющей его выполнением, является х. Блок модификации параметра цикла представлен оператором, выполняющимся оператором x += dX. Для перехода к следующему значению аргумента текущее значение наращивается на величину шага и заносится в ту же переменную.

Перед запуском программы проверяйте:

□ присвоено ли параметру цикла верное начальное значение;

□ изменяется ли параметр цикла на каждой итерации цикла;

□ верно ли записано условие продолжения цикла.

Распространенным приемом программирования является организация бесконеч­ного цикла с заголовком while (true) и принудительным выходом из тела цикла по выполнению какого-либо условия с помощью операторов передачи управления. Самым распространенным примером использования бесконечного цикла является пример организации меню программы.

using System;

namespace ConsoleApplication1

{ class Classl

{ static void Main()

{

string buf;

while ( true )

{

Console.WriteLine( "1 – пункт 1, 2 – пункт 2, 3 - выход" );

buf = Console.ReadLine();

switch ( buf )

{

case "1" : //Обработка первого пункта меню

break;

case "2" : // Обработка второго пункта меню

break;

case "3": return;

default : Console.WriteLine( "не попал по клавише!" ); break;

}} } . }}