Мегаобучалка Главная | О нас | Обратная связь


Операторы выбора if и switch в языке mikroC. Выполняемые функции, примеры их использования в программах



2016-01-02 2300 Обсуждений (0)
Операторы выбора if и switch в языке mikroC. Выполняемые функции, примеры их использования в программах 0.00 из 5.00 0 оценок




 

Язык mikroC поддерживает два типа операторов выбора: if (если) и switch (переключатель). Эти операторы позволяют проверять выполнение определенных условий и выбирать возможное продолжение вычислительного процесса. Возможны следующие конструкции этих операторов:

1) оператор if единственного выбора;

2) оператор if … else двойного выбора;

3) оператор if … else множественного выбора;

4) оператор switch множественного выбора.

 

Оператор if единственного выбора

 

Оператор if единственного выбора для одного выполняемого оператора имеет вид:

if ( условие )

оператор;

 

для блока выполняемых операторов:

if ( условие )

{

оператор1;

…………..

операторN;

}

 

Программа вычисляет условие, заключенное в круглых скобках. Если оно истинно, то выполняется оператор (или блок операторов, заключенный в фигурных скобках). Если условие ложно, то оператор (или блок) не выполняется.

Например:

char a, b;

………….

if(a == 1)

b = a + 10;

………….

Оператор if … else двойного выбора

 

Оператор if … else (если … то) двойного выбора обеспечивает две альтернативы продолжения выполнения программы. Выбор осуществляется исходя из проверяемого условия.

Общий вид оператора if … else двойного выбора для одного выполняемого оператора:

if ( условие )

оператор1;

else

оператор2;

 

Вместо одиночных операторов 1 и 2 могут быть блоки операторов, заключенные в фигурные скобки.

В случае истинности условия выполняется оператор1, в противном случае – оператор2.

Например:

char a, b;

…………..

if(a == 1)

b = a + 10;

else

b= a * 3;

………….

Оператор if … else множественного выбора

 

Язык mikroC позволяет использовать вложенные операторы if … else для реализации множественного выбора.

Общий вид оператора if … else множественного выбора:

if ( условие1 )

оператор1;

else if ( условие2 )

оператор2;

……………………

else if ( условиеN )

операторN;

else

оператор(N+1);

 

Последняя else-часть в операторе if … else может и отсутствовать.

Оператор if … else множественного выбора выполняет серию последовательных проверок до тех пор, пока не будет установлено следующее:

1. Одно из условий в if-части или в частях else if является истиной. В этом случае выполняются соответствующие ему операторы.

2. Ни одно из вложенных условий не является истиной. Программа выполнит операторы в последней else-части, если она имеется.

 

Например:

char a, b;

………….

if(a == 1)

b = a + 10;

else if(a == 2)

b = a * 3;

else

b = 0;

…………..

 

Оператор выбора switch

 

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

Общий вид оператора switch:

switch ( выражение)

{

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

оператор1;

break;

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

оператор2;

break;

…………………

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

операторN;

break;

default:

оператор(N+1);

}

Оператор switch выполняется так. Сначала вычисляется выражение, стоящее в скобках после ключевого слова switch. Вычисленное значение сравнивается со значением констант: константа1, константа2, …, константаN. При совпадении вычисленного значения с некоторой константой выполняется соответствующий ей оператор. Затем управление передается оператору break (прервать), который производит немедленный выход из оператора switch. Если вычисленное значение не совпадает ни с одной из констант, выполняется оператор в ветви, помеченной default (по умолчанию).

Правила использования оператора switch.

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

2. Значение после каждой метки case должно быть константой.

3. Язык Си не поддерживает метки case, содержащие диапазон значений. Каждое значение должно указываться с отдельной меткой case.

4. Необходимо использовать оператор break после каждого набора выполняемых операторов. Оператор break вызывает продолжение выполнения программы после завершения текущего оператора switch. Если не использовать оператор break, то выполнение программы продолжится на последующих метках case.

5. Ветвь, помеченная словом default (по умолчанию), выполняется тогда, когда ни одна из констант ветвей case не подходит. Ветвь default не является обязательной и, если она отсутствует, оператор switch ничего не выполнит.

6. Набор операторов в каждой ветви case не нужно заключать в фигурные скобки.

Замечание. В связи с тем, что в ветвях, помеченных словом case, можно указывать только константу, для анализа принадлежности к диапазону значений следует использовать оператор if … else множественного выбора.

В следующем примере проверяется значение переменной counter. Если counter равно 1, то переменной A присваивается значение 1. Если counter равно 10, то переменной B присваивается значение 1. Если counter равно 100, то переменная C устанавливается в 1. Если же counter не равно ни 1, ни 10. ни 100, тогда переменная D устанавливается в 1.

int counter, A = B = C = D = 0;

switch(counter)

{

case 1 :

A = 1;

break;

case 10 :

B = 1;

break;

case 100 :

C = 1;

break;

default :

D = 1;

}

 

15. Операторы цикла языка mikroC: for, while, do … while. Выполняемые функции, примеры использования в программах.

 

Оператор цикла for

 

Цикл for является универсальным, поскольку компоненты цикла могут быть произвольными выражениями. Общая форма записи оператора цикла for имеет вид:

for(инициализация; условие; увеличение/уменьшение переменной цикла)

{

тело цикла;

}

Оператор for имеет три компонента:

1. Инициализация – это место, где обычно находится оператор присваивания, используемый для установки начального значения переменной цикла.

2. Условие – это место, где находится выражение, определяющее условие работы цикла.

3. Увеличение/уменьшение переменной цикла – это место, где определяется характер изменения переменной цикла на каждой итерации, т.е. повторения цикла.

Тело цикла – это оператор или группа операторов, которые будут выполняться в цикле. Цикл for работает до тех пор, пока условие истинно. Когда условие становится ложным, выполнение программы продолжается с оператора, следующего за циклом for.

Например, в следующей программе осуществляется вывод чисел от 1 до 100 включительно в порт C микроконтроллера:

 

void main( )

{

char x;

for( x = 1; x <= 100; x++)

PORTC = x;

}

В программе переменная х изначально установлена в 1. Поскольку х меньше 100, выполняется оператор PORTC = x, который выводит х в порт C. После этого х увеличивается на 1 и проверяется условие: по-прежнему ли х меньше либо равен 100. Данный процесс продолжается до тех пор, пока х не станет больше 100, и в этот момент цикл прервется. В данном примере х является переменной цикла, которая изменяется и проверяется на каждой итерации цикла.

Вариации цикла for. Важной особенностью цикла for является то, что все три компонента цикла являются необязательными.

Например, если оставить все три компонента пустыми, то получим бесконечный цикл:

for( ; ; );

 

Кроме того, тело цикла может быть пустым, т.е. не содержать операторов. Такие циклы могут использоваться для получения временных задержек при выполнении программы:

for( i = 0; i < 10000; i++);

 

Оператор цикла while

 

Цикл while является разновидностью условного цикла, повторяющегося до тех пор, пока условие выполнено. Таким образом, цикл while может не выполняться ни разу, если условие проверки изначально ложно. Форма записи оператора цикла while имеет вид:

while( условие )

{

блок операторов;

}

 

Пример. Следующий цикл выводит в порт C числа от 1 до 100:

 

int x = 1;

while( x < = 100 )

{

PORTC = x;

x++;

}

 

Оператор цикла do…while

 

В цикле do… while условие повторения проверяется после каждого прохождения тела цикла. Следовательно, цикл do… while выполняется, по крайней мере, один раз.

Форма записи цикла do… while имеет вид:

do

{

блок операторов;

}

while( условие);

 

Пример. Следующий цикл выводит в порт C значения квадратов чисел от 2 до 10:

 

int x = 2;

do

{

PORTC = x * x;

x++;

}

while( x < = 10);

 



2016-01-02 2300 Обсуждений (0)
Операторы выбора if и switch в языке mikroC. Выполняемые функции, примеры их использования в программах 0.00 из 5.00 0 оценок









Обсуждение в статье: Операторы выбора if и switch в языке mikroC. Выполняемые функции, примеры их использования в программах

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2300)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)