Полное руководство. С# 4.0 - Шилдт Герберт
Выполнение этой программы дает следующий результат.Сумма равна 15
Обратите внимание на то, что процесс суммирования выполняется полностьюв операторе цикла for, и для этого тело цикла не требуется. В этом цикле особое внимание обращает на себя итерационное выражение.sum += i++
Подобные операторы не должны вас смущать. Они часто встречаются в программах, профессионально написанных на С#, и становятся вполне понятными, если разобрать их по частям. Дословно приведенный выше оператор означает следующее: сложить со значением переменной sum результат суммирования значений переменныхsum и i, а затем инкрементировать значение переменной i. Следовательно, данныйоператор равнозначен следующей последовательности операторов.sum = sum + i;i++;Объявление управляющих переменных в цикле for
Нередко переменная, управляющая циклом for, требуется только для выполнениясамого цикла и нигде больше не используется. В таком случае управляющую переменную можно объявить в инициализирующей части оператора цикла for. Например, в приведенной ниже программе вычисляется сумма и факториал чисел от 1 до 5,а переменная i, управляющая циклом for, объявляется в этом цикле.// Объявить переменную управления циклом в самом цикле for.using System;class ForVar { static void Main() { int sum = 0; int fact = 1; // вычислить факториал чисел от 1 до 5 for (int i = 1; i <= 5; i++) { sum += i; // Переменная i действует в цикле. fact *= i; } // А здесь переменная i недоступна. Console.WriteLine("Сумма равна " + sum); Console.WriteLine("Факториал равен " + fact); }}
Объявляя переменную в цикле for, не следует забывать о том, что область действияэтой переменной ограничивается пределами оператора цикла for. Это означает, чтоза пределами цикла действие данной переменной прекращается. Так, в приведенномвыше примере переменная i оказывается недоступной за пределами цикла for. Длятого чтобы использовать переменную управления циклом в каком-нибудь другом месте программы, ее нельзя объявлять в цикле for.
Прежде чем переходить к чтению следующего материала, поэкспериментируйтес собственными разновидностями оператора цикла for. В ходе эксперимента вы непременно обнаружите замечательные свойства этого оператора цикла.Оператор цикла while
Еще одним оператором цикла в C# является оператор while. Ниже приведенаобщая форма этого оператора:while (условие) оператор;
где оператор — это единственный оператор или же блок операторов, а условие означает конкретное условие управления циклом и может быть любым логическим выражением. В этом цикле оператор выполняется до тех пор, пока условие истинно. Кактолько условие становится ложным, управление программой передается строке кода,следующей непосредственно после цикла.
Ниже приведен простой пример программы, в которой цикл while используетсядля вычисления порядка величины целого числа.// Вычислить порядок величины целого числа.using System;class WhileDemo { static void Main() { int num; int mag; num = 435679; mag = 0; Console.WriteLine("Число: " + num); while(num > 0) { mag++; num = num / 10; }; Console.WriteLine("Порядок величины: " + mag); }}
Выполнение этой программы дает следующий результат.Число: 435679Порядок величины: 6
Приведенный выше цикл while действует следующим образом. Сначала проверяется значение переменной num. Если оно больше нуля, то переменная mag, выполняющая роль счетчика порядка величины, инкрементируется, а значение переменной numделится на 10. Цикл повторяется до тех пор, пока значение переменной num остаетсябольше нуля. Как только оно окажется равным нулю, цикл завершается, а в переменной mag остается порядок величины первоначального числового значения.
Как и в цикле for, в цикле while проверяется условное выражение, указываемоев самом начале цикла. Это означает, что код в теле цикла может вообще не выполняться, а также избавляет от необходимости выполнять отдельную проверку перед самимциклом. Данное свойство цикла while демонстрируется в следующем примере программы, где вычисляются целые степени числа 2 от 0 до 9.// Вычислить целые степени числа 2.using System;class Power { static void Main() { int e; int result; for(int i=0; i < 10; i++) { result = 1; e = i; while (e > 0) { result *= 2; e--; } Console.WriteLine("2 в степени " + i + " равно " + result); } }}
Результат выполнения этой программы приведен ниже.2 в степени 0 равно 12 в степени 1 равно 22 в степени 2 равно 42 в степени 3 равно 82 в степени 4 равно 162 в степени 5 равно 322 в степени 6 равно 642 в степени 7 равно 1282 в степени 8 равно 2562 в степени 9 равно 512
Обратите внимание на то, что цикл 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Число в обратном порядке: 891
Приведенный выше цикл действует следующим образом. На каждом его шагекрайняя слева цифра получается в результате расчета остатка от деления целого числа(значения переменной num) на 10. Полученная в итоге цифра отображается. Далее значение переменной num делится на 10. А поскольку это целочисленное деление, то в егорезультате крайняя слева цифра отбрасывается. Этот процесс повторяется до тех пор,пока значение переменной num не достигнет нуля.Оператор цикла foreach
Оператор цикла foreach служит для циклического обращения к элементам коллекции, которая представляет собой группу объектов. В C# определено несколько видов коллекций, к числу которых относится массив. Подробнее о цикле foreach речьпойдет в главе 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становится положительным.
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Полное руководство. С# 4.0 - Шилдт Герберт, относящееся к жанру Программирование. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.

