logo
Харви Дейтел, Пол Дейтел Как программировать на С++ / 02-Deitel-Стр-115-214

132 Глава 2

Хороший стиль программирования 2.25

Если в структуре switch предложение default помещено последним в списке, то оператор break в нем не требуется. Но некоторые программисты включают break и тут для четкости и для симметрии с другими случаями.

В структуре switch на рис. 2.22 строки

case '\n': case break;

позволяют программе пропускать символы новой строки и пробелы. Чтение по одному символу за раз создает некоторые проблемы. Чтобы программа могла прочитать символы, они должны быть посланы в компьютер нажатием клави­ши возврат каретки (ввод) на клавиатуре. Это вызывает во входном потоке символ новой строки после символа, который мы хотим ввести. Часто этот символ новой строки должен быть специально обработан, чтобы работа про­граммы была корректной. Включая указанный случай в нашу структуру switch, мы предотвращаем сообщения об ошибках, которые печатались бы каждый раз по метке default при вводе новой строки или пробела.

Типичная ошибка программирования 2.19

Отсутствие обработки символа новой строки при вводе, если символы читаются по одному, может привести к логической ошибке.

Хороший стиль программирования 2.26

Не забывайте обеспечить обработку возможности появления во входном потоке символа перехода на новую строку и других символов-разделителей, если обраба­тываете по одному символу за раз.

Отметим, что последовательное перечисление несколько меток (например, case 'D' : case 'd' : на рис. 2.22) просто означает, что для каждого из этих случаев должны выполняться одни и те же действия.

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

Когда мы дойдем до части книги, посвященной объектно-ориентирован­ному программированию, мы представим более элегантный способ реализации логики switch. Мы будем использовать технологию, называемую полимор­физмом, для создания программ, которые часто более ясные, более удобные для сопровождения и легче расширяются, чем программы, использующие логику switch.

Машинно-независимый язык типа С++ должен иметь гибкость относи­тельно размеров типов данных. Различные приложения могут требовать целые данные различного размера. С++ имеет несколько типов для пред­ставления целых чисел. Диапазон целых значений для каждого типа данных зависит от типа конкретного компьютера. В дополнение к типам int и char С++ имеет типы short (сокращение от short int) и long (сокращение от

Управляющие структуры 133

long int). Минимальный диапазон значений для целых типа short равен 32767. Для огромного большинства вычислений с целыми числами достаточно типа long. Минимальный диапазон значений для целых типа long равен 2147483647. В большинстве компьютеров int эквивалентен или short, или long. Диапазон значений для целых int по крайней мере такой же, как для short, и не больше, чем для long. Данные типа char могут использоваться для представления любых символов из множества символов компьютера. Тип char можно также использовать для представления не­больших целых.

Замечание по мобильности 2.3

Поскольку размер типа int варьируется от системы к системе, используйте тип long, если вы предусматриваете обработку целых, значения которых могут лежать вне диапазона 32767, и вы, вероятнее всего, сможете выполнять свою программу на нескольких различных компьютерных системах.

Совет по повышению эффективности 2.4

В ситуациях, где важна эффективность, где жесткие требования к памяти или кри­тична скорость исполнения программы, может оказаться желательным использовать целые минимальных размеров.