Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 175 176 177 178 179 180 < 181 > 182 183 184 185 186 187 .. 426 >> Следующая

полностью переписать, чтобы получить работоспособную версию.
Что вы и можете сделать с самого начала. В общем, лучше
избегать сквозного перехода в блоках оператора case.
ГЛАВА 15 Условные операторы 357
В C++ясно и безошибочно обозначайте код, проваливающийся
сквозь блоки оператора case Если вы намеренно написали код,
который должен выполняться в нескольких блоках case подряд,
внятно прокомментируйте место, где это происходит, и
объясните, почему это должно быть закодировано таким способом:
Пример документирования сквозного выполнения блоков case (C++)
switch ( errorDocumentationLevel ) { case
DocumentationLevel_Full:
DisplayErrorDetails( errorNumber );
// СКВОЗНОЙ ПЕРЕХОД - Полная документация также печатает //
суммарные комментарии.
case Documentationl_evel_Summary:
DisplayErrorSummary( errorNumber );
// СКВОЗНОЙ ПЕРЕХОД - Суммарная документация // также печатает
номер ошибки.
case DocumentationLevel_NumberOnly:
DisplayErrorNumber( errorNumber ); break;
default:
DisplayInternalError( "Internal Error 905: Call customer
support." );
}
Эта методика встречается так же часто, как и люди, которые
предпочитают подержанный "Понтиак Ацтек" новенькому "Корвету".
Обычно код, переходящий сквозь один блок case к другому,
просто напрашивается на ошибки при модификации и его следует
избегать.
Контрольный список: использование '
условных операторов http;//ec2e,com/i545
Операторы if-then
? Очевиден ли номинальный путь выполнения кода?
? Правильно ли выполняется ветвление при проверке if-then на
равенство?
? Присутствует и задокументирован ли блок else?
? Корректен ли блок else?
? Правильно ли расположены блоки if и else - нет ли
инверсии?
? Следует ли нормальный вариант после if, а не после else?
Последовательности if-then-else-if
? Преобразуются ли сложные проверки в вызовы логических
функций?
? Проверяются ли наиболее вероятные случаи первыми?
? Все ли варианты учитываются?
? Является ли последовательность if-then-else-if лучшей
реализацией или лучше использовать оператор case?
358 ЧАСТЬ IV Операторы
Операторы case
? Разумно ли отсортированы варианты в операторе case?
? Сделаны ли действия, выполняемые для каждого варианта,
простыми, например, с помощью преобразования в методы в
случае необходимости?
? Проверяет ли оператор case реальную переменную, а не
искусственно созданную, приводящую к неправильному
использованию оператора case?
? Корректны ли значения, обрабатываемые в блоке по
умолчанию?
? Используется ли блок по умолчанию для выявления ошибок и
сообщения о непредвиденных ситуациях?
? В языках С, C++ или Java содержит ли каждый блок case
команды для выхода?
Ключевые моменты
¦ В простых выражениях if-else обращайте внимание на порядок
блоков if и else, особенно если они обрабатывают множество
ошибок. Убедитесь, что номинальный вариант прослеживается
ясно.
¦ Для последовательностей if-then-else и операторов case
выбирайте порядок, позволяющий улучшить читабельность.
¦ Для перехвата ошибок используйте блок по умолчанию в
операторе case или последний блок else в цепочке операторов
if-then-else.
Ш Управляющие конструкции не равнозначны. Выбирайте
конструкцию, наиболее подходящую для данного участка кода.
ГЛАВА 16
Циклы
Содержание
. ^ ^ ЬирШ2*мМП№
¦ 16.1. Выбор типа цикла
¦ 16.2. Управление циклом
¦ 16.3. Простое создание цикла - изнутри наружу
¦ 16.4. Соответствие между циклами и массивами
Связанные темы
¦ Укрощение глубокой вложенности: раздел 19 4
¦ Общие вопросы управления: глава 19
¦ Код с условными операторами: глава 15
¦ Последовательный код: глава 14
¦ Отношения между управляющими структурами и типами данных:
раздел 10.7
Цикл - это неформальное обозначение любой структуры
итеративного типа, т. е. такой, которая заставляет программу
повторно выполнять некий блок кода. Наиболее распространенными
видами циклов являются for, while и do-while в C++ и Java,
For-Next, While-Wend и Do-Loop-While - в Microsoft Visual
Basic. Использование циклов - один из наиболее сложных
аспектов программирования. Знание, как и когда применять
каждый тип цикла, - это решающий фактор в конструировании
высококачественного ПО.
16.1. Выбор типа цикла
В большинстве языков можно использовать несколько видов
циклов, перечисленных ниже.
¦ Цикл с подсчетом выполняется определенное количество раз, к
примеру, один раз для каждого работника.
¦ Постоянно вычисляемый цикл не знает заранее, сколько раз он
будет выполняться и проверяет необходимость завершения при
каждой итерации. Например, он выполняется, пока остаются
деньги, пока пользователь не выберет команду завершения или
не встретится ошибка.
360 ЧАСТЬ IV Операторы
¦ Бесконечный цикл выполняется все время с момента старта.
Такие циклы можно встретить во встроенных системах, таких
как кардиостимуляторы, микроволновые печи и автопилоты.
¦ Цикл с итератором выполняет некоторые действия однократно
для каждого элемента контейнерного класса.
Предыдущая << 1 .. 175 176 177 178 179 180 < 181 > 182 183 184 185 186 187 .. 426 >> Следующая