Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

Операторы if могут быть вложенными. В этом случае служебное слово else (если оно используется) связывается с последним оператором if, с которым ещё не было связано else. Во избежание путаницы с вложенными операторами, лучше пользоваться фигурными скобками или структурировать текст отступами для явного указания того, к какому из операторов if принадлежит слово else. Примеры применения вложенных операторов if– else приведены ниже:

1 if (input > 78)

2  air_condision = on; //включить кондиционер, если жарко

3 else

4  if (input > 58)

5   fan = on; //включить вентилятор,если душно, но

              //не жарко

6  else

7   heater = on; //включить обогреватель, если прохладно

8 …………

В этом примере программа должна различить, к какому из трех диапазонов принадлежит текущее значение температуры окружающей среды. Если температура превышает 78 градусов по Фаренгейту, то должен быть включен кондиционер. Если температура меньше 79 градусов, но больше 58, то следует оставить включенным только вентилятор, а если температура равна или ниже 58 градусов, то следует включить обогреватель.

Те же управляющие действия могут быть записаны с применением другой конструкции операторов if-else:

1 if (input > 78)

2  air_condision = on; //включить кондиционер, если жарко

3 if (input > 58)

5  fan = on; //включить вентилятор,если душно и жарко

6 else

7  heater = on; //включить обогреватель, если прохладно

Отличие этого варианта программы от предыдущего состоит в том, что оба оператора if–else стали независимыми друг от друга. А в предыдущем примере второй оператор if– else был вложен в первый. Это конструктивное изменение программы внесло коррективы в реализуемый ею алгоритм управления. Так в первом варианте при значении переменной input=80 выражение первого оператора if окажется истинным и будет включен кондиционер. И далее управление будет передано строке 8, т.е. вторая конструкция if будет пропущена из рассмотрения. Во втором случае при том же значении переменной input=80 после проверки первого условия будет также включен кондиционер, но затем управление будет передано второму оператору if. Поскольку второе условие также выполняется, то вентилятор будет также включен.

Еще один вариант реализации того же задачи:

1 if (input > 78)

2  air_condision = on; //включить кондиционер, если жарко

3 if ((input > 58) && (input < 79))

5  fan = on; //включить вентилятор,если душно, но не жарко

6 if (input < 59)

7  heater = on; //включить обогреватель, если прохладно

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

1 if (condition 1)

2  (instruction set 1);

3 if (condition 2)

5  (instruction set 2);

6 if (condition 3)

7  (instruction set 3);

Если число различных значений переменной условия condition превышает 4 или 5, то для выполнения подобной задачи следует использовать оператор switch.

3.9.4. Оператор SWITCH

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

1  switch(<выражение>)

2  {

3  case <константное_выражение_1>:

4   <оператор_1>;

5   break;

6  case <константное_выражение_2>:

7   <оператор_2>;

8   break;

9   :

10  :

11 case <константное_выражение_n>:

12  <оператор_n>;

13  break;

14 default :

15  <оператор_n+1>;

16 }

Перейти на страницу:

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT