Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на Си для PIC.docx
Скачиваний:
14
Добавлен:
01.07.2025
Размер:
351 Кб
Скачать
☆

Switch-case-break (выбрать набор и выйти)

Синтаксис

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

{

case константа1: группа операторов 1

case константа2: группа операторов 2

...

default: группа операторов n

}

 

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

 

Выражение, следующее за ключевым словом switch в круглых скобках, может быть любым выражением, допустимым в языке Си, значение которого должно быть целым. Значение этого выражения является ключевым для выбора из нескольких вариантов. Тело оператора switch состоит из нескольких операторов, помеченных ключевым словом case с последующими константами.

 

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

 

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

 

После выполнения операторов, соответствующих выбранному варианту, будут выполняться операторы, соответствующие следующему варианту. Для выхода из оператора switch используется оператор break.

 

 

Пример.

tmp = 2; // некая переменная

switch(tmp)

{ // начало тела switch

case 0: {tmp=tmp-2; tmp=tmp-2;}

case 3: tmp=tmp-2;

case 2: tmp=tmp*5;

case 5: tmp=tmp/2; break;

case 4: tmp=tmp+1; break;

default: ;

} // конец тела switch

 

 

Комментируем. Выполнение оператора switch начинается с оператора, помеченного case 2, т.к. tmp = 2. Таким образом переменная tmp получает значение tmp=2*5=10. Затем выполняется оператор, помеченный ключевым словом case 5 (по порядку), tmp получает значение tmp=10/2=5. Далее по оператору break происходит выход из оператора switch. Если бы этого break не было, то еще бы выполнялся оператор помеченный case 4.

Return (возврат)

Синтаксис

return (выражение);

 

Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом.

 

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

 

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

 

Пример.

void main (void){

z = sum (5,1);

/* вызываем функцию sum и передаем ей значения 5 и 1,

результат вызова sum (5,1) отдаем z */

}

 

// функция суммирования

unsigned char sum (unsigned char x, unsigned char y)

{

return x+y;

}

 

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