Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015

Тут можно читать онлайн Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - бесплатно полную версию книги (целиком) без сокращений. Жанр: Прочая старинная литература, издательство Вильямс, год 0101. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.

Стивен Прата - Язык программирования C. Лекции и упражнения (6-е изд.) 2015 краткое содержание

Язык программирования C. Лекции и упражнения (6-е изд.) 2015 - описание и краткое содержание, автор Стивен Прата, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

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

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

Интервал:

Закладка:

Сделать

Рис 73 Сравнение операторов break u continue 276 глава 7 Иногда оператор - фото 202

Рис. 7.3. Сравнение операторов break u continue

276 глава 7

Иногда оператор break используется для выхода из цикла, когда для этого существуют две отдельные причины. Программа, показанная в листинге 7.10, содержит цикл для вычисления площади прямоугольника. Цикл прекращается при вводе нечислового значения для длины или ширины прямоугольника.

Листинг 7.10. Программа break.с

Цикл можно было бы реализовать следующим образом while scanff f - фото 203

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

while (scanf("%f %f", slength, swidth) == 2)

Однако применение оператора break существенно упрощает эхо-вывод вводимых значений.

Как и continue, не используйте оператор break, если это приводит к усложнению кода. Взгляните, например, на следующий цикл:

while ((ch = getchar()) != '\n')

{

if (ch = ‘\t') break;

putchar(ch);

}

Логика программы станет яснее, если выполнять обе проверки в одном месте:

while ( (ch = getchar()) != ‘\n ' &&ch != ‘\ t') putchar(ch);

Оператор break является важным дополнением оператора switch, который будет рассматриваться следующим.

Оператор break передает управление оператору, который находится непосредственно после цикла; в отличие от случая с continue внутри цикла for, пропускается обновляющая часть раздела управления цикла. Оператор break, помещенный внутрь вложенного цикла, приводит к выходу только из внутреннего цикла; для выхода из внешнего цикла необходим еще один break:

Управляющие операторы С: ветвление и переходы 277

int р, q;

scanf("%d", &р);

while ( р > 0)

{

printf("%d\n", p); scanf("%d", &q); while ( q > 0)

{

printf("%d\n",p*q); if (q > 100)

break; // выход из внутреннего цикла

scanf("%d", &q);

}

if (q > 100)

break; // выход из внешнего цикла

scanf("%d", &p);

}

Выбор из множества вариантов: операторы switch И break

Условная операция и конструкция if else облегчают написание программ, в которых производится выбор между двумя альтернативами. Однако временами в программе должен делаться выбор одного варианта из множества альтернатив. Это можно реализовать с помощью конструкции if else if...else, но во многих случаях удобнее применять оператор switch. Работа этого оператора демонстрируется в листинге 7.11. Данная программа читает букву и отвечает выводом названия животного, которое начинается с такой буквы.

Листинг 7.11. Программа animals. с

глава 7 Мы ограничились лишь несколькими буквами но можно было продолжить в - фото 204

глава 7 Мы ограничились лишь несколькими буквами но можно было продолжить в - фото 205 глава 7 Мы ограничились лишь несколькими буквами но можно было продолжить в - фото 206

глава 7

Мы ограничились лишь несколькими буквами, но можно было продолжить в том же духе. Давайте рассмотрим пример выполнения этой программы, после чего проанализируем ее структуру:

Дайте мне букву алфавита, и я укажу вам название животного, начинающееся с этой буквы.

Введите букву или # для завершения, a [enter]

архар, дикий горный азиатский баран Введите следующую букву или # для завершения, вал [enter]

выхухоль, водоплавающее существо

Введите следующую букву или # для завершения.

ф [enter]

Вопрос озадачил!

Введите следующую букву или # для завершения.

Е [enter]

Распознаются только строчные буквы.

Введите следующую букву или # для завершения.

# [enter]

До свидания.

Две основных особенности программы касаются использования оператора switch и обработки вводимых данных. Для начала необходимо ознакомиться с тем, как работает оператор switch.

Использование оператора switch

Первым делом вычисляется выражение в круглых скобках, следующее за словом switch. В этом случае оно представляет собой значение, которое переменная ch получила в результате последнего ввода. Затем программа просматривает список меток (здесь это case ' а ' :, case ' б' : и т.д.), пока не найдет совпадающее значение. После этого программа переходит на данную строку. А что произойдет, если совпадений не найдено? Если в операторе предусмотрена строка, помеченная как default:, то про-

Управляющие операторы С: ветвление и переходы 279

грамма перейдет на нее. В противном случае выполнение продолжится с оператора, следующего после switch.

Что можно сказать об операторе break? Он заставляет программу выйти из оператора switch и перейти к оператору, находящемуся после switch (рис. 7.4).

Рис 74 Петит управления в onepamopax switch си без тераторов break Без break - фото 207

Рис. 7.4. Петит управления в onepamopax switch си без тераторов break

Без break выполнялись бы все операторы между тем, который имеет совпадающую метку, и концом switch. Например, если вы удалите все операторы break, а затем запустите программу и введете букву в, будет получен следующий вывод:

Дайте мне букву алфавита, и я укажу вам название животного, начинающееся с этой буквы.

Введите букву или # для завершения, в [enter]

выхухоль, водоплавающее существо ехидна, игольчатый муравьед рыболов, светло-коричневая куница Вопрос озадачил!

Введите следующую букву или # для завершения.

# [enter]

Программа завершена.

Были выполнены все операторы, начиная с case 'в' : и до конца оператора

switch.

Кстати, break работает и с циклами и с оператором switch, в то время как continue — только с циклами. С другой стороны, continue может применяться внут-

280 Глава 7 ри оператора switch, если switch находится в цикле. В такой ситуации, как и с другими циклами, continue заставляет программу пропустить остальные операторы цикла, включая другие части switch.

Если вы знакомы с языком Pascal, то можете отметить большое сходство switch с оператором case в Pascal. Самое важное различие между ними связано с тем, что switch требует использования оператора break, если нужно, чтобы выполнялся только помеченный оператор. Кроме того, в конструкции case языка С нельзя применять диапазон.

Проверочное выражение в круглых скобках внутри switch должно иметь целочисленное значение (включая тип char). Метки case должны быть константами целочисленного типа (в том числе char) или целочисленными константными выражениями (выражениями, которые содержат только целочисленные константы). Указывать для метки case переменную не допускается. Ниже приведена структура оператора switch.

switch {целочисленное-выражение)

{

case константа1:

операторы <- не обязательно

case константа2\

операторы <- не обязательно

default: <- не обязательно

операторы <- не обязательно

}

Чтение только первого символа строки

Еще одна новая особенность программы animals. с связана с тем, как она читает входные данные. Возможно, вы уже заметили во время выполнения этой программы, что при вводе вап был обработан только первый символ. Такое поведение с отбрасыванием оставшейся части строки часто является желательным в интерактивных программах, ожидающих односимвольные ответы. Указанное поведение обеспечивает следующий код:

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

Интервал:

Закладка:

Сделать


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

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




Язык программирования C. Лекции и упражнения (6-е изд.) 2015 отзывы


Отзывы читателей о книге Язык программирования C. Лекции и упражнения (6-е изд.) 2015, автор: Стивен Прата. Читайте комментарии и мнения людей о произведении.


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

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