Программирование >>  Обработка исключительных ситуаций 

1 ... 21 22 23 [ 24 ] 25 26 27 ... 142


Начальные

установки


Модификация параметра цикла


Рис. 4.4. Структурные схемы операторов цикла

Параметром цикла называется переменная, которая используется при проверке условия продолжения цикла и принудительно изменяется на каждой итерации, причем, как правило, на одну и ту же величину. Если параметр цикла целочисленный, он называется счетчиком цикла. Количество повторений такого цикла можно определить заранее. Параметр есть не у всякого цикла. В так называемом итеративном цикле условие продолжения содержит переменные, значения которых изменяются в цикле по рекуррентным формулам1.

Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом. Для этого служат операторы break, continue, return и goto (см. раздел Операторы передачи управления , с. 83). Передавать управление извне внутрь цикла запрещается (при этом возникает ошибка компиляции).

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

Формат оператора прост: while ( выражение ) оператор

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

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



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

ВНИМАНИЕ-

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

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

t, х <0

у = I tx, 0 х < 10 2г, х > 10

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

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

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

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

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

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

5. Если оно не превышает конечное значение, повторить шаги 2-4, иначе закончить.

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

Листинг 4.3. Таблица значений функции, полученных с использованием цикла while 5 ng System;

-;~iespace Consol eApplicationl class Classl { static void MainO {

double Xn = -2, Xk = 12, dX = 2, t = 2. y;

Console.WriteLineC x у ); заголовок таблицы

double x = Xn; 1

while ( x <= Xk ) lib

У = t; 1/2

продолжение



i f ( X >= О И X < 10 ) у = i f ( х >= 10 ) у =

Console.WriteLineC {0.6} х += dX:

х; t;

{.б} I , x. у):

2 11 2 3

ПРИМЕЧАНИЕ-

При выводе использованы дополнительные поля спецификаций формата, опред( ляющие желаемую ширину поля вывода под переменную (в данном случае - 6 не зиций). В результате колонки при выводе таблицы получаются ровными. Описанг спецификаций формата приведено в приложении.

Параметром этого цикла, то есть переменной, управляющей его выполнением является х. Блок модификации параметра цикла представлен оператором, вь полняющимся на шаге 4. Для перехода к следующему значению аргумента tckj щее значение наращивается на величину шага и заносится в ту же иеременнув Начинающие часто забывают про модификацию параметра, в результате програи ма зацикливается . Если с вами произошла такая неприятность, попробуйт для завершения программы нажать клавиши Ctrl+Break, а впредь перед запуске программы проверяйте:

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

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

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

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

Листинг 4.4. Организация меню using System;

namespace ConsolеАрр1icationl { class Class!

{ static void MainO

string buf: while ( true )

Console.WriteLineC 1 - пункт 1. 2 buf = Console.ReadLineO: switch С buf )

пункт 2. 3 - выход ):

case 1 : Вставить код обработки пункта 1

Console.WriteLineC отладка - пункт 1 ):



1 ... 21 22 23 [ 24 ] 25 26 27 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика