Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Оператор выбора альтернатив (переключатель)Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Оператор switch (переключатель) предназначен для разветвления процесса вычислений на несколько направлений. Общий вид оператора: switch (выражение) { case константа 1: список операторов 1 case константа 2: список операторов 2 ... case константаN: список операторов N default: список операторов N +1 – необязательная ветвь; }
Выполнение оператора начинается с вычисления выражения, значение которого должно быть целого или символьного типа. Это значение сравнивается со значениями констант и используется для выбора ветви, которую нужно выполнить. В данной конструкции константы фактически выполняют роль меток. Если значение выражения совпало с одной из перечисленных констант, то управление передается в соответствующую ветвь. После этого, если выход из переключателя в данной ветви явно не указан, последовательно выполняются все остальные ветви. Все константы должны иметь разные значения, но быть одного и того же типа. Несколько меток могут следовать подряд, и тогда переход в указанную ветвь будет происходить при совпадении хотя бы одной из них. Порядок следования ветвей не регламентируется. В случае несовпадения значения выражения ни с одной из констант выбора происходит переход на метку default либо, при ее отсутствии, к оператору, следующему за оператором switch. Управляющий оператор break (разрыв) выполняет выход из оператора switch. Если по совпадению с каждой константой должна быть выполнена одна и только одна ветвь, схема оператора switch следующая: switch (выражение) { case константа1: операторы 1; break; case константа2: операторы 2; break; ... case константа N: операторы N; break; default: операторы (N +1); break; } Структурная схема рассмотренной конструкции (с использованием оператора break) приведена на рис. 6.4.
Пример оператора switch с использованием оператора break: void main(void) { int i = 2; switch(i) { case 1: puts ("Случай 1. "); break; case 2: puts ("Случай 2. "); break; case 3: puts ("Случай 3. "); break; default: puts ("Случай default. "); break; } } Результатом выполнения данной программы будет: Случай 2. Аналогичный пример без использования оператора break (схема общего вида такой конструкции приведена рис. 6.5): void main() { int i = 2; switch(i) { case 1: puts ("Случай 1. "); case 2: puts ("Случай 2. "); case 3: puts ("Случай 3. "); default: puts ("Случай default. "); } } В данном случае результат будет следующим: Случай 2. Случай 3. Случай default.
Пример реализации простейшего калькулятора на четыре действия с контролем правильности ввода символа нужной операции. Ввод данных осуществляется следующим образом: операнд 1, символ нужной операции, операнд 2. Текст программы может быть следующим: #include <stdio.h> void main(void) { double a, b, c; char s; m1: fflush(stdin); // Очистка буфера ввода stdin printf("\n Введите операнд 1, символ операции, операнд 2:"); scanf("%lf%c%lf", &a, &s, &b); switch(s) { case '+': c = a+b; break; case '–': c = a–b; break; case '*': c = a*b; break; case '/': c = a/b; break; default: printf("\n Ошибка, повторите ввод! "); goto m1; } printf("\n a %c b = %lf ", s, c); printf("\n Продолжим? (Y/y) "); s = getch(); if ((s=='Y') || (s=='y')) goto m1; printf("\n Good bye! "); } После запуска программы на экран выводится подсказка, нужно набрать соответствующие значения без пробелов, например, как показано ниже, и нажать клавишу Enter: Введите операнд 1, символ операции, операнд 2: 2.4+3.6 На экран будет выведен результат и дальнейший диалог: a + b = 6.000000 Продолжим? (Y/y) Введя символ y (Y), вернемся в начало функции и на экране вновь появится: Введите операнд 1, символ операции, операнд 2: Если ошибочно ввести – 2r3, появятся следующие сообщения: Ошибка, повторите ввод! Введите операнд 1, символ операции, операнд 2: 2 * 3 a*b = 6.000000 Continue? (Y/y) Нажимаем любую клавишу, кроме y или Y – следует сообщение Good bye! Программа закончена.
ГЛАВА 7. Составление циклических алгоритмов
Понятие циклического кода Практически все алгоритмы решения задач содержат циклически повторяемые участки. Цикл – это одно из фундаментальных понятий программирования. Под циклом понимается организованное повторение некоторой последовательности операторов. Любой цикл состоит из кода цикла, т.е. тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла. Один проход цикла называется шагом или итерацией. Проверка условия продолжения цикла происходит на каждой итерации либо до выполнения кода цикла (с предусловием), либо после выполнения (с постусловием). Для организации циклов используются специальные операторы. Перечень разновидностей операторов цикла языка Си следующий: – оператор цикла с предусловием; – оператор цикла с постусловием; – оператор цикла с предусловием и коррекцией.
|
||||
Последнее изменение этой страницы: 2016-04-19; просмотров: 624; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.13.192 (0.009 с.) |