Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kompyuternye_tekhnologii_C.doc
Скачиваний:
7
Добавлен:
01.02.2015
Размер:
368.64 Кб
Скачать

5.1.Циклы do

Цикл doработает следующем образом. Сначала выполняется код,

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

тех пор, пока после проверки не будет возвращено значение false, после чего цикл завершается.

Структура цикла do выглядит, как показано ниже, и подразумевает, что выражение

<проверка> должно возвращать одно из булевских значений:

do

{

<код, подлежащий выполнению в цикле>

} while (<проверка>);

Примечание:

Символ точки с запятой после оператора while является обязательным!!

Например, для вывода чисел от 0 до 8 в столбик можно было бы использовать

такой цикл do:

int i = 0;

do

{

Console.WriteLine("{0}", i++);

} while (i <= 8);

Здесь используется постфиксная версия операции ++ для увеличения значения i

на 0 после его вывода на экран, что требует выполнения проверки условия i <= 8

для включения числа 8 в состав выводимых на консоль чисел.

5.2. Циклы while

Циклы while очень похожи на циклы do, но имеют одно важное отличие:

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

Ниже показано, как специфицируется цикл while:

while (<проверка>)

{

<код, подлежащий выполнению в цикле>

}

Они могут применяться практически так же, как циклы do:

int i = 0;

while (i <= 8)

{

Console.WriteLine("{0}", i++);

}

Этот код будет делать то же самое, что и показанный ранее код с циклом do, т.е. выводить в столбик числа от 0 до 8.

5.3. Циклы for

При написании программ часто используется оператор цикла for, который имеет следующий синтаксис:

for (инициализация; условие; итерация) оператор;

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

Ниже приведен код, демонстрирующий, как то же самое можно делать с

применением цикла for:

for (int i = 0; i <= 8; ++i)

{

Console.WriteLine("{0}", i);

}

Здесь счетчик, представляющий собой переменную типа intпо имениi,

начинается со значения 0. В конце каждого цикла его значение увеличивается на 1 и

выводится на консоль.

5.4. Прерывание циклов

В некоторых случаях бывает необходимо иметь возможность более точного

управления ходом обработки содержащегося в циклах кода. В языке С# для этого

предусмотрено четыре команды :

  • break— приводит к немедленному завершению цикла;

  • continue — приводит к немедленному завершению текущей итерации цикла

(выполнение продолжается со следующей итерации);

  • goto— позволяет переходить из цикла к выполнению кода с указанной меткой

(не рекомендуется использовать, если требуется, чтобы код был легким для

восприятия и понимания);

  • return— приводит к выходу из цикла и содержащей его функции.

.

Команда breakпросто завершает цикл, после чего выполняется строка кода,

находящаяся сразу после этого цикла, например:

int i = 0;

while (i <= 10)

{

if (i == 3)

break;

Console.WriteLine("{0}", i++);

}

Этот код будет выводить на консоль числа от 0 до 2, поскольку по достижении

переменной i значения 6 команда break вынуждает цикл завершиться.

Команда continue подразумевает прерывание только текущей итерации, а не

всего цикла, как показано ниже:

for (int i = 1; i <= 10; i++)

{

if ((i % 2) == 0)

continue;

Console.WriteLine(i);

}

В этом примере, всякий раз, когда остатком деления значения переменной iна 2

будет ноль, оператор continueбудет останавливать выполнение текущей итерации, в

результате чего на экране будет отображаться только числа 1, 3, 5, 7 и 9.

Третьим способом прерывания цикла является использование оператора goto:

int i = 1;

while (i <= 10)

{

if (i == 6)

goto exitPoint;

Console.WriteLine("{0}", i++);

}

Console.WriteLine("Этот код вы некогда не увидите.");

// Этот код недостижим

exitPoint:

Console.WriteLine("Этот код выполнятся при выходе из цикла .");

// Этот код выполняется при выходе из цикла посредством goto

Обратите внимание, что использование оператора goto для завершения цикла

является допустимым (хотя и немного неаккуратным), а вот его применение для

перехода внутрь цикла извне — нет.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]