Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Desktop_1 / К лекциям / Ветвление программ

.doc
Скачиваний:
24
Добавлен:
10.06.2015
Размер:
139.26 Кб
Скачать

break;

}

}

Как только сбросится флаг IsPrimeNumber, вложенный цикл сразу же прервется и выйдет в основной цикл. Таким образом, количество итераций сократится многократно, что благоприятно скажется на производительности работы программы.

Оператор continue в отличие от break не прерывает хода выполнения цикла. Он лишь приостанавливает текущую итерацию и переходит сразу к проверке условия выполнения цикла.

for (int j = 0; j < 100; j++ )

{

if (j%2 == 0)

continue;

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

}

Такой цикл позволит вывести на экран все нечетные числа. Работает он следующим образом: перебирает все числа от 0 до 100. Если очередное число четное — все дальнейшие операции в цикле прекращаются, наращивается число j, и цикл начинается сначала.

Вечные циклы

При написании приложений с использованием циклов вам следует остерегаться зацикливания программы. Зацикливание — это ситуация, при которой условие выполнения цикла всегда истинно и выход из цикла невозможен. Давайте рассмотрим простой пример.

using System;

class Cycles

{

public static void Main()

{

int nl, r2;

r1 = 0;

r2 = n1 + 1;

while(nl < n2)

{

Console.WriteLine("nl = {0} , n2 = {1} " , n1 , n2 );

}

}

}

Здесь условие (n1 < n2) всегда истинно. Поэтому выход из цикла невозможен. Следовательно, программа войдет в режим вечного цикла. Такие ошибки являются критическими, поэтому следует очень внимательно проверять условия выхода из цикла.

Однако иногда бывает полезно задать в цикле заведомо истинное условие. Типичным примером вечного цикла является следующая запись:

while(true)

{...}

Возможно что такая конструкция приведет к зависанию системы, если не задать в теле цикла инструкцию его прерывания. Рассмотрим пример программы:

using System;

class Cycles

{

public static void Main()

{

String Name;

while (true)

{

Console.Write("Введите ваш имя ");

Name = Console.ReadLine();

Console.WriteLine("Здравствуйте {0}", Name);

}

}

}

Такая программа не имеет выхода. Что бы не ввел пользователь, программа выдаст строку приветствия и запросит ввод имени заново. Однако все изменится, если в программу добавить условие, при выполнении которого цикл прерывается.

using System;

class Cycles

{

public static void Main()

{

string Name;

while (true)

{

Console.WriteLine("Введите ваш имя ");

Name = Console.ReadLine();

if (Name == "")

break;

Console.WriteLine("Здравствуйте {0 ) ", Name);

}

}

}

На этот раз, как только пользователь нажмет клавишу «Enter» без ввода строки данных, сработает инструкция break, и программа выйдет из цикла.

Создание вечных циклов оправдывает себя, если существует несколько условий прерывания цикла и их сложно объединить в одно выражение, записываемое в блоке условия.

Вечный цикл можно создать не только при помощи оператора while.

Любой оператор цикла может быть использован для создания вечных циклов. Вот как выглядит та же программа, но с использованием цикла for:

using System;

class Cycles

{

public static void Main()

{

string Name;

for (; ; )

{

Console.Write("Введите ваш имя ");

Name = Console.ReadLine();

if (Name == "")

break;

Console.WriteLine("Здравствуйте {0} ", Name);

}

}

}

Цикл for может не содержать ни инструкции инициализации, ни инструкции проверки, ни инструкции итерации. Два оператора (;) внутри цикла for означают вечный цикл.

Соседние файлы в папке К лекциям