Стенли Липпман - Язык программирования C++. Пятое издание

Тут можно читать онлайн Стенли Липпман - Язык программирования C++. Пятое издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2014. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык программирования C++. Пятое издание
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2014
  • Город:
    Москва
  • ISBN:
    978-5-8459-1839-0
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Стенли Липпман - Язык программирования C++. Пятое издание краткое содержание

Язык программирования C++. Пятое издание - описание и краткое содержание, автор Стенли Липпман, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
Лучшее руководство по программированию и справочник по языку, полностью пересмотренное и обновленное под стандарт С++11!
Вы держите в руках новое издание популярного и исчерпывающего бестселлера по языку программирования С++, которое было полностью пересмотрено и обновлено под
. Оно поможет вам быстро изучить язык и использовать его весьма эффективными и передовыми способами. В соответствии с самыми передовыми и современными методиками изложения материала авторы демонстрируют использование базового языка и его стандартной библиотеки для разработки эффективного, читабельного и мощного кода.
С самого начала этой книги читатель знакомится со стандартной библиотекой С++, ее самыми популярными функциями и средствами, что позволяет сразу же приступить к написанию полезных программ, еще не овладев всеми нюансами языка. Большинство примеров из книги было пересмотрено так, чтобы использовать новые средства языка и продемонстрировать их наилучшие способы применения. Эта книга — не только проверенное руководство для новичков в С++, она содержит также авторитетное обсуждение базовых концепций и методик языка С++ и является ценным ресурсом для опытных программистов, особенно желающих побыстрей узнать об усовершенствованиях С++11.
Стенли Б. Липпман Жози Лажойе Барбара Э. Му • Узнайте, как использовать новые средства языка С++11 и стандартной библиотеки для быстрого создания надежных программ, а также ознакомьтесь с высокоуровневым программированием
• Учитесь на примерах, в которых показаны передовые стили программирования и методики проектирования
• Изучите принципы и узнайте почему язык С++11 работает именно так
• Воспользуйтесь множеством перекрестных ссылок, способных помочь вам объединить взаимосвязанные концепции и проникнуть в суть
• Ознакомьтесь с современными методиками обучения и извлеките пользу из упражнений, в которых подчеркиваются ключевые моменты, позволяющие избежать проблем
• Освойте лучшие методики программирования и закрепите на практике изученный материал
Исходный код примеров можно загрузить с веб-страницы книги на сайте издательства по адресу: http://www.williamspublishing.com

Язык программирования C++. Пятое издание - читать онлайн бесплатно полную версию (весь текст целиком)

Язык программирования C++. Пятое издание - читать книгу онлайн бесплатно, автор Стенли Липпман
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

occurs = 1;

(c) if (int ival = get_value())

cout << "ival = " << ival << endl;

if (!ival)

cout << "ival = 0\n";

(d) if (ival = 0)

ival = get_value();

Упражнение 5.8. Что такое "потерянный оператор else"? Как в языке С++ определяется принадлежность ветви else?

5.3.2. Оператор switch

Оператор switchпредоставляет более удобный способ выбора одной из множества альтернатив. Предположим, например, что необходимо рассчитать, как часто встречается каждая из пяти гласных в некотором фрагменте текста. Программа будет иметь следующую логику.

• Читать каждый введенный символ.

• Сравнить каждый символ с набором искомых гласных.

• Если символ соответствует одной из гласных букв, добавить 1к соответствующему счетчику.

• Отобразить результаты.

Программа должна отобразить результаты в следующем виде:

Number of vowel а: 3195

Number of vowel e: 6230

Number of vowel i: 3102

Number of vowel o: 3289

Number of vowel u: 1033

Для непосредственного решения этой задачи можно использовать оператор switch.

// инициализировать счетчики для каждой гласной

unsigned aCnt = 0, eCnt = 0, iCnt = 0, oCnt = 0, uCnt = 0;

char ch;

while (cin >> ch) {

// если ch - гласная, увеличить соответствующий счетчик

switch (ch) {

case 'a':

++aCnt;

break;

case 'e':

++eCnt;

break;

case 'i':

++iCnt;

break;

case 'o':

++oCnt;

break;

case 'u':

++uCnt;

break;

}

}

// вывод результата

cout << "Number of vowel a: \t" << aCnt << '\n'

<< "Number of vowel e: \t" << eCnt << '\n'

<< "Number of vowel i: \t" << iCnt << '\n'

<< "Number of vowel o: \t" << oCnt << '\n'

<< "Number of vowel u: \t" << uCnt << endl;

Оператор switchвычисляет результат выражения, расположенного за ключевым словом switch. Это выражение может быть объявлением инициализированной переменной (см. раздел 5.2). Выражение преобразуется в целочисленный тип. Результат выражения сравнивается со значением, ассоциированным с каждым оператором case.

Если результат выражения соответствует значению метки case, выполнение кода начинается с первого оператора после этой метки. В принципе выполнение кода продолжается до конца оператора switch, но оно может быть прервано оператором break.

Более подробно оператор breakрассматривается в разделе 5.5.1, а пока достаточно знать, что он прерывает текущий поток выполнения. В данном случае оператор breakпередает управление первому оператору после оператора switch. Здесь оператор switchявляется единственным оператором в теле цикла while, поэтому его прерывание возвращает контроль окружающему оператору while. Поскольку в нем нет никаких других операторов, цикл whileпродолжается, если его условие выполняется.

Если соответствия не найдено, выполнение сразу переходит к первому оператору после switch. Как уже упоминалось, в этом примере выход из оператора switchпередает управление условию цикла while.

Ключевое слово case и связанное с ним значение называют также меткой case( caselabel). Значением каждой метки caseявляется константное выражение (см. раздел 2.4.4).

char ch = getVal();

int ival = 42;

switch(ch) {

case 3.14: // ошибка: метка case не целое число

case ival: // ошибка: метка case не константа

// ...

Одинаковые значения меток caseнедопустимы. Существует также специальная метка default, рассматриваемая ниже.

Порядок выполнения в операторе switch

Важно понимать, как управление передается между метками case. После обнаружения соответствующей метки caseвыполнение начинается с нее и продолжается далее через все остальные метки до конца или пока выполнение не будет прервано явно. Во избежание выполнения последующих разделов caseвыполнение следует прервать явно, поэтому оператор breakобычно является последним оператором перед следующей меткой case.

Однако возможны ситуации, когда необходимо именно стандартное поведение оператора switch. У каждой метки caseможет быть только одно значение, однако две или более метки могут совместно использовать единый набор действий. В таких ситуациях достаточно пропустить оператор break и позволить программе пройти несколько меток case.

Например, можно было бы посчитать общее количество гласных так:

unsigned vowelCnt = 0;

// ...

switch (ch) {

// для инкремента vowelCnt подойдет любая буква а, е, i, о или u

case 'a':

case 'e':

case 'i':

case 'o':

case 'u':

++vowelCnt;

break;

}

Здесь расположено несколько меток caseподряд без оператора break. Теперь при любой гласной в переменной chбудет выполняться тот же код.

Поскольку язык С++ не требует обязательно располагать метки caseв отдельной строке, весь диапазон значений можно указать в одной строке:

switch (ch) {

// альтернативный допустимый синтаксис

case 'a': case 'e': case 'i': case 'o': case 'u':

++vowelCnt;

break;

}

Язык программирования C Пятое издание - изображение 148Случаи, когда оператор breakпропускают преднамеренно, довольно редки, поэтому их следует обязательно комментировать, объясняя логику действий.

Пропуск оператора break— весьма распространенная ошибка

Весьма распространено заблуждение, что выполняются только те операторы, которые связаны с совпавшей меткой case. Вот пример неправильной реализации подсчета гласных в операторе switch:

// внимание: преднамеренно неправильный код!

switch (ch) {

case 'a' :

++aCnt; // Упс! Необходим оператор break

case 'e':

++eCnt; // Упс! Необходим оператор break

case 'i':

++iCnt; // Упс! Необходим оператор break

case 'o':

++oCnt; // Упс! Необходим оператор break

case 'u':

++uCnt;

}

Чтобы понять происходящее, предположим, что значением переменной chявляется 'e'. Выполнение переходит к коду после метки case 'e', где происходит инкремент переменной eCnt. Выполнение продолжается далее через метки case, увеличивая также значения переменных iCnt, oCntи uCnt.

Язык программирования C Пятое издание - изображение 149Несмотря на то что оператор breakи не обязателен после последней метки оператора switch, использовать его все же рекомендуется. Ведь если впоследствии оператор switchбудет дополнен еще одной меткой case, отсутствие оператора breakпосле прежней последней метки не создаст проблем.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Стенли Липпман читать все книги автора по порядку

Стенли Липпман - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык программирования C++. Пятое издание отзывы


Отзывы читателей о книге Язык программирования C++. Пятое издание, автор: Стенли Липпман. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x