Главная » Просмотр файлов » Г. Шилдт - С#4.0 Полное руководство

Г. Шилдт - С#4.0 Полное руководство (1160795), страница 26

Файл №1160795 Г. Шилдт - С#4.0 Полное руководство (Г. Шилдт - С#4.0 Полное руководство) 26 страницаГ. Шилдт - С#4.0 Полное руководство (1160795) страница 262019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 26)

В отличие от операторов цикла Гог и ы)111е, в которых условие проверялось в самом начале цикла, в операторе с(о-н)711е условие выполнения цикла проверяется в самом его конце. Это означает, что цикл с(о-ы)711е всегда выполняется хотя бы один раз. Ниже приведена общая форма оператора цикла г(о-н)111е. с(о ( операторы; ) нь11е (условие); При наличии лишь одного оператора фигурные скобки в данной форме записи необязательны. Тем не менее они зачастую используются для того, чтобы сделать кон- 2 в степени 0 2 в степени 1 2 в степени 2 2 в степени 3 2 в степени 4 2 в степени 5 2 в степени б 2 в степени 7 2 в степени 8 2 в степени 9 равно 1 равно 2 равно 4 равно 8 равно 16 равно 32 равно 64 равно 128 равно 256 равно 512 Глава 5.

Управляющие операторы 139 струкцию бо-ы)т11е более удобочитаемой и не путать ее с конструкцией цикла ып11е. Цикл с)о-и)г11е выполняется до тех пор, пока условное выражение истинно. В приведенном ниже примере программы цикл бо-ы)>11е используется для представления отдельных цифр целого числа в обратном порядке. Отобразить цифры целого числа в обратном порядке. цягпч зуясев; с1аяя РоИП11ерево ( ягаггс чогб нагл() ( 1пг псьи гпх пехдб191Г! пцв = 198; Сопяо1е.нггяеьгпе("Число: " + пцв); Сопяо1е.иггсе("Число в обратном порядке: с(о ( пехдбг91Г = пцв % 10г Сопяо1е.иггсе(пехсб191Г); пнв = пцв / 10г нд11е(пцв > 0)г Сопяо1е.иг1гедгпе()г Выполнение этой программы дает следующий результат. Число: 198 Число в обратном порядке: 891 Приведенный выше цикл действует следующим образом. На каждом его шаге крайняя слева цифра получается в результате расчета остатка от деления целого числа (значения переменной пцв) на 10.

Полученная в итоге цифра отображается. Далее значение переменной пцв делится на 10. А поскольку это целочисленное деление, то в его результате крайняя слева цифра отбрасывается. Этот процесс повторяется до тех пор, пока значение переменной пцв не достигнет нуля. Оператор цикла йохеасЬ Оператор цикла гогеасгг служит для циклического обращения к элементам коллекции, которая представляет собой группу объектов. В С)) определено несколько видов коллекций, к числу которых относится массив. Подробнее о цикле гогеас)г речь пойдет в главе 7, где рассматриваются массивы.

Применение оператора Ьгеа)с для выхода из цикла С помощью оператора )згеа)г можно специально организовать немедленный выход из цикла в обход любого кода, оставшегося в теле цикла, а также минуя проверку 3.40 Часть (. Язык С№ условия цикла. Когда в теле цикла встречается оператор ЬгеаК, цикл завершается, а выполнение программы возобновляется с оператора, следующего после этого цикла. Рассмотрим простой пример программы.

// Применить оператор ЬгеаК длл выхода ия цикла. цяьпс Буягеш( с1аяя ВгеаКоешо ( ясасьс чоьп' маьп() ( Использовать оператор ЪгеаК длл выхода ия этого цикла. Гог(ьпс 1=-10; 1 <= 10) 1++) ( 11(1 > О) ЬгевК; // завершить цикл, как только значение переменной 1 станет положительным Сопяо1е.иг1се(1 + " ") П Сопяо1е.нгьсевьпе("Готово!" )) Выполнение этой программы дает следующий результат. -10 -9 -8 -7 -б -5 -4 -3 -2 -1 0 Готово! Как видите, цикл гол организован для выполнения в пределах от -10 до 10, но, несмотря на это, оператор Ьгеак прерывает его раньше, когда значение переменной 1 становится положительным. Оператор Ь ге а К можно применять в любом цикле, предусмотренном в С((.

В качестве примера ниже приведена версия предыдущей программы, переделанная с целью использовать цикл с(о-хЬ11е. Применить оператор Ьгеах длл выхода ия цикла Оо-нШ1е. цяьпд Зуясеш) с1аяя ВгеаКПешо2 ( ясагьс чо1г( Ма1п() ( ьпг -10) по ( 11(1 > О) ЬгеаК/ Сопяо1е.ильге(1 + " "); 1+ю ) нб11е(1 <= 10); Сопво1е . Хгзге пыле ( "Готово! ") ) А теперь рассмотрим более практический пример применения оператора ЬгеаК.

В приведенной ниже программе выявляется наименьший множитель числа. Выявить наименьший множитель числа. ця1пч Бувбешг Глава б. Управляющие операторы 141 с1азз 81пбзша11езгуассог ( згасьс чо1б Ма1п () ( ьпз Гассог = 1; 1пс пцш = 10007 Гог(1пг =г; 1 <= пцшУ1Г 1+~) 11((пои%1) == 0) ( Гасгог = 17 Ьгеак; // прервать цикл, как только будет // выявлен наименьший множитель числа Сопзо1е.игьсещпе("Наименьший множитель равен " + Гассет); ) ) Результат выполнения этой программы выглядит следующим образом.

Наименьший множитель равен 2 Оператор Ь ге а Х прерывает выполнение цикла 1о г, как только будет выявлен наи- Ъ меныпий множитель числа. Благодаря такому применению оператора Ьгеа)< исключается опробование любых других значений после выявления наименьшего множителя числа, а следовательно, и неэффективное выполнение кода. Если оператор Ьгеак применяется в целом ряде вложенных циклов, то он прерывает выполнение только самого внутреннего цикла. В качестве примера рассмотрим следующую программу. // Применить оператор Ьгеай во вложенных циклах.

ЦЗГП9 ЯУЗГЕШ7 с1азз Вгеакиезсеб ( зсаг1с чогб Магп() ( Гог(1пс 1=0; 1<3; г++) ( сопзо1е.иг1геььпе("Подсчет во внешнем цикле: " ь г); Сопзо1е.нггсе(" Подсчет во внутреннем цикле: "); ьпг с = О; нь11е (Ь < 100) ( 11(г == 10) Ьгеа)ы !/ прервать цикл, если Г равно 10 Сопзо1е.игьсе(Г т " ") 7 Гь+7 Сопзо1е.иг1геЬ1пе()7 ) Сопво1е.иг1геЬгпе("циклы завершены."); ) Выполнение этой программы дает следующий результат. Подсчет во внешнем цикле: 0 Подсчет во внутреннем цикле; О 1 2 3 4 5 б 7 8 9 Подсчет во внешнем цикле: 1 142 Часть! Язык С№ Подсчет во внутреннем цикле: 0 1 2 3 4 5 б 7 8 9 Подсчет во внешнем цикле: 2 Подсчет во внутреннем цикле: 0 1 2 3 4 5 б 7 8 9 Циклы завершены Как видите, оператор Ьгеа)г из внутреннего цикла вызывает прерывание только этого цикла, а на выполнение внешнего цикла он не оказывает никакого влияния.

В о~ношении оператора Ьгеай необходимо также иметь в виду следующее. Вопервых, в теле цикле может присутствовать несколько операторов Ьгеа)с, но применять их следует очень аккуратно, поскольку чрезмерное количество операторов ь геах обычно приводит к нарушению нормальной структуры кода. И во-вторых, оператор ьгеа)с, выполняющий выход из оператора яыьссЬ, оказывает воздействие только на этот оператор, но не на объемлющие его циклы. Применение оператора аоп~~пие С помощью оператора сопс1пце можно организовать преждевременное завершение шага итерации цикла в обход обычной структуры уггравления циклом. Оператор с оп сьпце осуществляет принудительный переход к следующему шагу цикла, пропуская любой код, оставшийся невыполненным.

Таким образом, оператор сопгьпце служит своего рода дополнением оператора Ьгеа)с. В приведенном ниже примере программы оператор сопс1пце используется в качестве вспомогательного средства для вывода четных чисел в пределах от 0 до 100. Применить оператор сопггпце. цяьпч зуягешб с1аяя Сопгоешо ( ясас1с чоьй Мд1п () ( !/ вывести четные числа от 0 до 100. бог(гпя 1 = 0; 1 <= 100; ьь+) ( 1Г((142) (= О) сопяьпце) /! перейти к следуюшему шагу итерации Сопяо1е.игьгешпе(1); ) ) В данном примере выводятся только четные числа, поскольку при обнаружении нечетного числа шаг итерации цикла завершается преждевременно в обход вызова метода Игьгеб№пе () .

В циклах ыб11е и с)о-ыЬ11е оператор сопсьпце вызывает передачу управления непосредственно условному выражению, после чего продолжается процесс выполнения цикла. А в цикле гог сначала вычисляется итерационное выражение, затем условное выражение, после чего цикл продолжается. Оператор сопс1пце редко находит удачное применение, в частности, потому, что в С() предоставляется богатый набор операторов цикла, удовлетворяющих большую часть прикладных потребностей. Но в тех особых случаях, когда требуется преждевременное прерывание шага итерации цикла, оператор сопс№пце предоставляет структурированный способ осуществления такого прерывания.

Глава б. Управляющие операторы 143 Оператор ге~икгт Оператор гесцгп организует возврат из метода. Его можно также использовать для возврата значения. Более подробно он рассматривается в главе 6. Оператор до~о Имеющийся в С(( оператор посо представляет собой оператор безусловного перехода. Когда в программе встречается оператор посо, ее выполнение переходит непосредственно к тому месту, на которое указывает этот оператор. Он уже давно "вышел из употребления" в программировании, поскольку способствует созданию "макаронного" кода.

Тем не менее оператор алого все еще находит применение — иногда даже эффективное. В этой книге не делается никаких далеко идущих выводов относительно правомочности использования оператора алого для управления программой. Следует, однако, подчеркнуть, что этому оператору трудно найти полезное применение, и поэтому он не особенно нужен для полноты языка программирования. Хотя в некоторых случаях он оказывается удобным и дает определенные преимущества, если используется благоразумно. В силу этих причин оператор посо упоминается только в данном разделе книги.

Главный недостаток оператора дого с точки зрения программирования заключается в том, что он вносит в программу беспорядок и делает ее практически неудобочитаемой. Но иногда применение оператора досо может, скорее, прояснить, чем запутать ход выполнения программы. Для выполнения оператора досо требуется метка — действительный в С(( идентификатор с двоеточием. Метка должна находиться в том же методе, где и оператор посо, а также в пределах той же самой области действия.

В приведенном ниже примере программы цикл суммирования чисел от 1 до 100 организован с помощью оператора посо и соответствующей метки. х = 1) 1оор1: хтт; 1Г(х < 100) дого 1сзр1; Кроме того, оператор посо может быть использован для безусловного перехода к ветви сазе или г(егаи1С в операторе зиггс)). Формально ветви сазе или с(ебац1С выполняют в операторе змтссЬ роль меток. Поэтому они могут служить адресатами оператора досо.

Характеристики

Тип файла
DJVU-файл
Размер
7,66 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее