Чтение онлайн

на главную - закладки

Жанры

C# 4.0 полное руководство - 2011

Шилдт Герберт

Шрифт:

Обратите внимание на то, что цикл 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

Число в обратном порядке: 8 91

Приведенный выше цикл действует следующим образом. На каждом его шаге крайняя слева цифра получается в результате расчета остатка от деления целого числа (значения переменной num) на 10. Полученная в итоге цифра отображается. Далее значение переменной num делится на 10. А поскольку это целочисленное деление, то в его результате крайняя слева цифра отбрасывается. Этот процесс повторяется до тех пор, пока значение переменной num не достигнет нуля.

Оператор цикла foreach

Оператор цикла f oreach служит для циклического обращения к элементам коллекции, которая представляет собой группу объектов. В C# определено несколько видов коллекций, к числу которых относится массив. Подробнее о цикле f oreach речь пойдет в главе 7, где рассматриваются массивы.

Применение оператора break для выхода из цикла

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

после этого цикла. Рассмотрим простой пример программы.

// Применить оператор break для выхода из цикла.

using System;

class BreakDemo {

static void Main {

// Использовать оператор break для выхода из этого цикла, for(int i=—10; i <= 10; i++) {

if(i > 0) break; // завершить цикл, как только значение // переменной i станет положительным Console .Write (i + " ") ;.

}

Console .-WriteLine ("Готово ! ") ;

}

}

Выполнение этой программы дает следующий результат.

– 10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 Готово!

Как видите, цикл for организован для выполнения в пределах от -10 до 10, но, несмотря на это, оператор break прерывает его раньше, когда значение переменной i становится положительным.

Оператор break можно применять в любом цикле, предусмотренном в С#. В качестве примера ниже приведена версия предыдущей программы, переделанная с целью использовать цикл do-while.

// Применить оператор break для выхода из цикла do-while. using System;

*

class BreakDemo2 { static void Main { int i;

i = -10;

do {

if (i > 0) break;

Console.Write(i + " ") ; i++ ;

} while (i <= 10);

Console.WriteLine("Готово!");

}

}

А теперь рассмотрим более практический пример применения оператора break. В приведенной ниже программе выявляется наименьший множитель числа.

// Выявить наименьший множитель числа.

using System;

class FindSmallestFactor { static void Main { int factor = 1; int num =-1000;

for (int i=2; i <= num/i;' i++) {

if((num%i) == 0) {

factor = inbreak; // прервать цикл, как только будет

// выявлен наименьший множитель числа

}

}

Console.WriteLine("Наименьший множитель равен " + factor);

}

}

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

Наименьший множитель равен 2

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

Поделиться:
Популярные книги

О, Путник!

Арбеков Александр Анатольевич
1. Квинтет. Миры
Фантастика:
социально-философская фантастика
5.00
рейтинг книги
О, Путник!

Здравствуй, 1984-й

Иванов Дмитрий
1. Девяностые
Фантастика:
альтернативная история
6.42
рейтинг книги
Здравствуй, 1984-й

Плохой парень, Купидон и я

Уильямс Хасти
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Плохой парень, Купидон и я

Полковник Гуров. Компиляция (сборник)

Макеев Алексей Викторович
Полковник Гуров
Детективы:
криминальные детективы
шпионские детективы
полицейские детективы
боевики
крутой детектив
5.00
рейтинг книги
Полковник Гуров. Компиляция (сборник)

Измена. Вторая жена мужа

Караева Алсу
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Вторая жена мужа

Собрание сочинений. Том 5

Энгельс Фридрих
5. Собрание сочинений Маркса и Энгельса
Научно-образовательная:
история
философия
политика
культурология
5.00
рейтинг книги
Собрание сочинений. Том 5

Возвышение Меркурия. Книга 7

Кронос Александр
7. Меркурий
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 7

Блуждающие огни 4

Панченко Андрей Алексеевич
4. Блуждающие огни
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Блуждающие огни 4

Злыднев Мир. Дилогия

Чекрыгин Егор
Злыднев мир
Фантастика:
фэнтези
7.67
рейтинг книги
Злыднев Мир. Дилогия

Этот мир не выдержит меня. Том 3

Майнер Максим
3. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Этот мир не выдержит меня. Том 3

1941: Время кровавых псов

Золотько Александр Карлович
1. Всеволод Залесский
Приключения:
исторические приключения
6.36
рейтинг книги
1941: Время кровавых псов

Я – Стрела. Трилогия

Суббота Светлана
Я - Стрела
Любовные романы:
любовно-фантастические романы
эро литература
6.82
рейтинг книги
Я – Стрела. Трилогия

Поющие в терновнике

Маккалоу Колин
Любовные романы:
современные любовные романы
9.56
рейтинг книги
Поющие в терновнике

Стеллар. Трибут

Прокофьев Роман Юрьевич
2. Стеллар
Фантастика:
боевая фантастика
рпг
8.75
рейтинг книги
Стеллар. Трибут