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

Г. Шилдт - С# 3.0 Полное руководство. 2010 (1160798), страница 27

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

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

В таком случае управляющую переменную можно объявить в инициализирующей части оператора цикла 5ог. Например, в приведенной ниже программе вычисляется сумма и факториал чисел от 1 до 5, а переменная 1, управляющая циклом 5ог, объявляется в этом цикле. // Объявить переменную управЛения цикЛом в // самом цикле Еог. патнем Зуасеаи с1ааа Гогцаг ( асасгс чозт( Иаьп() ( 1пг ацв = Эт гпс тасс 1; // вычислить факториал чисел от 1 до 5 Гог(зпс 1 = 1) г <= 5) зь+) ( аци += 1; // Переменная 1 действует в цикле. тасс *= 1; ) // А здесь переменная 1 недоступна.

Сопэо1е.игьсеъгпе("Сумма равна " + ацм); сопао1е.нгзгеьзпе("Факториал равен " + тасс); Объявляя переменную в цикле 5ог, не следует забывать о том, что область действия этой переменной ограничивается пределами оператора цикла гог. Это означает, что за пределами цикла действие данной переменной прекращается. Так, в приведенном выше примере переменная 1 оказывается недоступной за пределами цикла 5ог.

Для того чтобы Глава 5. Упрааллюо(ие операторы 133 использовать переменную управления циклом в каком-нибудь другом месте программы, ее нельзя объявлять в цикле тот. Прежде чем переходить к чтению следующего материала, поэкспериментируйте с собствеииыми разиовилиостями оператора цикла 1ог. В ходе эксперимента вы непременно обнаружите замечательные свойства этого оператора цикла. Оператор цикла иЬх1е Еше одним оператором цикла в С() является оператор нп11е. Ниже приведена общая форма этого оператора.

нп11е (условие) оператор; где оператор — это единственный оператор или же блок операторов, а условие озиачает конкретное условие управления циклом и может быть любым логическим выражеиием. В этом цикле оператор выполняется до тех пор, пока условие истинно. Как только условие становится ложным, управление программой передается строке кода, следующей непосредственно после цикла. Ниже приведен простой пример программы, в которой цикл нП11е используется для вычисления порядка величины целого числа.

// Вычислить порядок величины целого числа. цв1пч Яувсевт с1авв ИЬ11еоево ( втаоьс чо1о Маьп() ( 1пс пав) 1пс вач; пцв = 435679; вач = 0; Сопво1е.ыгхаещпе("Число: " + пцв)т нл11е(пцв > О) ( вач++; пцв = пцв / 10; )' Сопво1е.ыг1сеъьпе("Порядок величины: " + вач)) ) ) Выполнение этой программы дает следующий результат: Число: 435679 Порядок величины. "6 Приведенный выше цикл нп11е действует следующим образом. Сначала проверяется значение переменной пцв. Если оио больше нуля, то переменная вас, выполняющая роль счетчика порядка величины, иикремеитируется, а значение переменной пцв делится иа 10. Цикл повторяется до тех пор, пока значение перемеииой пцв остается больше нуля.

Как только оио окажется равным нулю, цикл завершается, а в переменной вас остается порядок величины первоначального числового значения. 134 Часть (. Язык Са Как и в цикле тот, в цикле н)711е проверяется условное выражение, указываемое в самом начале цикла. Это означает, что код в теле цикла может вообще не выполняться, а также избавляет от необходимости выполнять отдельную проверку перед самим циклом. Данное свойство цикла н)711е демонстрируется в следующем примере программы, где вычисляются целые степени числа 2 от 0 до 9. // Вычислить целые степени числа 2. ца1пЧ зуакеи) с1ава Ронег [ атааас ного нагл() ( хпк ек 1пк гевц1С7 Еог(тпк 1=07 1 < 107 1++) ( геац16 1; е 17 ни11е (е > О) ( геац16 * 27 Е--7 ) сопао1е.иквсеьтпе("2 в степени " ь 1 ь " равно " + геац1с)7 ) ) Результат выполнения этой программы приведен ниже. Обратите внимание на то, что цикл н)711е выполняется только в том случае, если значение переменной е больше нуля.

А когда оно равно нулю, как это имеет место на первом шаге цикла тот, цикл ни11е пропускается. Оператор цикла сто-иЬ~Хе- Третьим оператором цикла в СФ является оператор с(о-ни11е. В отличие от операторов цикла гог и н)711е, в которых условие проверялось в самом начале цикла, в операторе с(о-ни11е условие выполнения цикла проверяется в самом его конце. Это означает, что цикл с(о-нп11е всегда выполняется хотя бы один раз. Ниже приведена общая форма оператора цикла с(о-н)711е.

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

Цикл боИИ11е выполняется до тех пор, пока условное выражение истинно. В приведенном ниже примере программы цикл бо-ни 11е используется для представления отдельных цифр целого числа в обратном порядке. // Отобразить цифры целого числа в обратном порядке. це1пЧ зуясев; с1авв ОоИН11ерево ( воаоас то1б Нато() ( 1по гпхп; 1пк пехпо191пт пцв = 1989 Сопво1е .

Игаоет рпе (" Число т " ь пцв) т Сопво1е.Игьое("Число в обратном порядке: ")т бо ( пехтб1910 = пцв $10) Сопво1е.Итаке(пехоб191Ш пцв = пцв / 10) ) ни11е(пшп > О)) Сопяо1е.нг1ое11пе() ) ) Выполнение этой программы дает следующий результат: Число: 198 Число в обратном порядке: 891 Приведенный выше цикл действует следующим образом, На каждом его шаге крайняя слева цифра получается в результате расчета остатка от деления целого числа (значения переменной пцв) иа 10. Полученная в итоге цифра отображается.

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

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

Оператор Ьгеак можно применять в любом цикле, предусмотренном в С(). В качестве примера ниже приведена версия предыдущей программы, переделанная с целью использовать цикл По-ИЬ11е. // Применить оператор Ьгеак для выхода из цикла Оо-ип11е. цв1пЧ Яузкекп с1азз Вкеаквево2 ( зкактс чоьд Ма1п() ( 1пк 1; = -107 т)о ( 18(1 > 0) Ьгеа)тт сопво1е.икьсе(1 ь " ")т ) нЬ11е(1 < 10)т Сопво1е.нг1сеьвпе("Готово)")т ) ) Глава В. Упрввллющие операторы 137 А теперь рассмотрим более практический пример применения оператора Ьгеах.

В приведенной ниже программе выявляется наименьший множитель числа. // Выявить наименьший множитель числа. ца1пд Вувсеш( с1авв гтпбзша11евсгассог ( впагас чоад Маап() ( Епг Еасгог = 1; 1пС пцш = 1000в Еог(хпг 1=2) 1 <= пцш/1) 1++) ( ЕЕ((пцшь1) == О) ( Еасгог = 1в Ьгеах; // прервать цикл, как только будет // выявлен наименьший множитель числа Сопво1е.иг1Сеь1пе("Наименьший множитель равен " ь Еасгог); Результат выполнения этой программы выглядит следующим образом: Наименьший множитель равен 2 Оператор Ьгеак прерывает выгюлнение цикла Еог, как только будет выявлен наименьший множитель числа. Благодаря такому применению оператора Ьгеак исключается опробование любых других значений после выявления наименьшего множителя числа, а следовательно, и неэффективное выполнение кода.

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

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

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

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

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

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

Г. Шилдт - С# 3.0 Полное руководство
C_sharp_3TCR_code
Apndx.lst
Chap2.lst
Chap3.lst
Chap4.lst
Chap5.lst
Chap6.lst
Chap7.lst
Chap8.lst
Chap9.lst
Chap10.lst
Chap11.lst
Chap12.lst
Chap13.lst
Chap14.lst
Chap15.lst
Chap16.lst
Chap17.lst
Chap18.lst
Chap19.lst
Chap20.lst
Chap21.lst
Chap22.lst
Chap23.lst
Chap24.lst
Chap25.lst
Chap26.lst
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6455
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее